ERROR: Z must be a matrix, not a scalar or vector

1 view (last 30 days)
Grid = linspace(0,2*pi);
xAxis = (prams.Radius + prams.radius*cos(Grid)).*cos(Grid);
yAxis = (prams.Radius + prams.radius*cos(Grid)).*sin(Grid);
zAxis = prams.radius.*sin(Grid);
surf(xAxis,yAxis,zAxis);
hold on;
Why is it throwing the error: Z must be a matrix,not a scalar or vector

Accepted Answer

John D'Errico
John D'Errico on 27 Jul 2016
READ THE ERROR MESSAGE.
What is the variable grid? (Hint, a vector)
What shape are each of the variables xAxis, yAxis, zAxis? Note that the shape of the vector GRID propagates through these computations. So they are vectors also.
Now re-read the error message. Surf requires an array. You passed it a vector. What you really wanted to do, we cannot know.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!