What Does this error even mean??

[x, y, z]=meshgrid(0.5:0.05:0.5, 0.5:0.05:0.5, 0.5:0.05:0.5);
a=0;
for l=1:length(x)
for j=1:length(y)
for k=1:length(z)
a(l, j, k)=k-sqrt((0.25)-((0.58-(l).^2))-((0.58-(j).^2)));
end
end
end
surf(x,z,a)
*Error using surf (line 75)
Z must be a matrix, not a scalar or vector*

Respuestas (1)

the cyclist
the cyclist el 20 de Oct. de 2013

0 votos

The way you have defined x y and z, they are each just a single number (i.e. a "scalar").
I think maybe you meant
[x, y, z]=meshgrid(-0.5:0.05:0.5, -0.5:0.05:0.5, -0.5:0.05:0.5);
I still get an error from your code when I make that replacement, but I am not quite sure what you intended. I suggest you give
doc surf
a careful read.

1 comentario

Firew Biruu
Firew Biruu el 20 de Oct. de 2013
Dear 'The Cyclist', Thank you for your reply. I actually forgot to put the -signs. I managed to get results correcting it as follows;
[x, y]=meshgrid(-1:0.05:1, -1:0.05:1);
for l=1:length(x) for j=1:length(y) a(l, j)=0.5-sqrt((0.58-((0.35-(l).^2))-((0.35-(j).^2)))); end end
surf(x, y, a)
and also for the 2d mesh,
[x, y]=meshgrid(-1:0.05:1, -1:0.05:1);
for l=1:length(x) for j=1:length(y) a(l, j)=0.5-sqrt((0.58-((0.35-(l).^2))-((0.35-(j).^2)))); end end
plot(x, a) hold on plot(y, a)
What I am actually doing is plotting in 2D and 3D the area covered by an end-effector and the height spanned by the carriage as the arm go up and down in a reprap delta robot (transnational)
I surely can use some help on the inverse kinematics visualization of similar machine on Matlab.
Thank you

Iniciar sesión para comentar.

Preguntada:

el 20 de Oct. de 2013

Comentada:

el 20 de Oct. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by