Surface plot error for Z must be a matrix, not a scalar or vector

1 visualizzazione (ultimi 30 giorni)
function polar3D(theta,phi,f)
f = abs(f);
f = f/max(max(f));
[x,y,z] = sph2cart(f,theta,phi);
[N,M] = size(x);
color = ones(N,M);
surf(x,y,z,color);
Just don't know how to make z a matrix after sph2cart

Risposte (2)

Walter Roberson
Walter Roberson il 27 Set 2021
careful, x is (eventually) going to be 3d, and the way you use size is wrong for 3d.
I have seen cases where z was returned as an unexpected number of dimensions when phi was scalar.
  1 Commento
Hu1k
Hu1k il 27 Set 2021
So should I change x to 1d or input phi as a matrix. And could you tell me how I should change that?

Accedi per commentare.


Matt J
Matt J il 27 Set 2021
Modificato: Matt J il 27 Set 2021
Just don't know how to make z a matrix after sph2cart
z will be a matrix if at least one of the inputs f, theta and phi are matrices. This should be the case, otherwise you haven't generated samples that cover a 2D surface.
  1 Commento
Walter Roberson
Walter Roberson il 28 Set 2021
Modificato: Walter Roberson il 28 Set 2021
I have seen x, y come out 2d but z come out vector. But I have also seen z come out as matrix. I did not track down the conditions

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by