Extract output data from meshgrid input

I have some data which I have interpolated as follows:
Data = load("data.txt")
x = Data(:,1);
y = Data(:,2);
z = Data(:,3);z=-z;
c = Data(:,4);
F = scatteredInterpolant(x,y,z,c);
N = 50;
xvec = linspace(min(x), max(x), N);
yvec = linspace(min(y), max(y), N);
zvec = linspace(min(z), max(z), N);
[xq, yq, zq] = meshgrid(xvec, yvec, zvec);
vq = F(xq, yq, zq);
What I want to do is to extract the value of vq for a given xq,yq,zq.
Like vq(xq==21.7267 & yq==36.9072 & zq==-0.9551), which gives me an empty column vector.
If I do F(21.7267,36.9072,-0.9551) is this the correct vq?

2 Commenti

Please attach the data
I have uploaded the data

Accedi per commentare.

 Risposta accettata

Cris LaPierre
Cris LaPierre il 14 Feb 2021
Modificato: Cris LaPierre il 14 Feb 2021
Always more helpful for us if you share 1) your data and 2) the complete error message (all the red text).
This example on the scatteredInterpolant documentation page shows how to use the results of meshgrid to determine vq. Make sure you are using the 4th input correctly. MATLAB expects it to be the sample values, specified as a vector that defines the function values at the sample points, v = F(x,y,z).

5 Commenti

I have uploaded the data. There is no error message I just get an empty column vector.
I don't think that is the issue. The issue is that the logical comparisons were each true for multiple locations, and indexing with multiple selected values in multiple indices gets you results at the cross-product rather than at the intersection.
tandemuse
tandemuse il 14 Feb 2021
Modificato: tandemuse il 14 Feb 2021
If I do F(21.7267,36.9072,0.9551) is this the correct vq?
Yes, that would recalculate rather than extract from the stored value.
However is your z positive or negative? You changed sign compared to your other comments
True it should be negative

Accedi per commentare.

Più risposte (1)

vq(xq==2 & yq==3 & zq==5)

3 Commenti

better yet is ismembertol instead of ==
vq(xq==21.7267 & yq==36.9072 & zq==-0.9551) gives me an empty column vector
That why I said to use ismembertol()

Accedi per commentare.

Categorie

Prodotti

Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by