What is going wrong with my mesh command?

5 visualizaciones (últimos 30 días)
Gian Lorenzo
Gian Lorenzo el 6 de Mayo de 2013
I am trying to visualize this function and eventually its contour lines:
clear all
[x,y]=meshgrid(-10:0.1:10)
d=max([sqrt(x.^2+y.^2);sqrt((x-5).^2+(y+1).^2);sqrt((x-4).^2+(y-6).^2);...
sqrt((x-1).^2+(y-3).^2)])+eps;
mesh(d)
I get an error message saying Z should be a matrix. I looked at the example here http://www.mathworks.com/help/matlab/ref/mesh.html, and I don't understand why their function generates a matrix and mine don't. Altough mine is a 'weird' function with a max it shouldn't be conceptually too different, what am I missing here?

Respuesta aceptada

Iman Ansari
Iman Ansari el 6 de Mayo de 2013
Editada: Iman Ansari el 6 de Mayo de 2013
Hi.
clear
[x,y]=meshgrid(-10:0.1:10)
d=max(sqrt(x.^2+y.^2),sqrt((x-5).^2+(y+1).^2));
d=max(d,sqrt((x-4).^2+(y-6).^2));
d=max(d,sqrt((x-1).^2+(y-3).^2))+eps;
mesh(x,y,d)
OR
meshc(x,y,d)
  2 comentarios
Gian Lorenzo
Gian Lorenzo el 6 de Mayo de 2013
Thanks! Can you explain me what's the wrong reasoning I am doing here? Does the max function handles at most two arguments? Is eps strictly necessary?
Iman Ansari
Iman Ansari el 6 de Mayo de 2013
Editada: Iman Ansari el 6 de Mayo de 2013
From Help: If A is a matrix, max(A) treats the columns of A as vectors, returning a row vector containing the maximum element from each column.
Your input in max function is 804*201, so output become 1*201.
No.

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 6 de Mayo de 2013
d=max( cat(3, sqrt(x.^2+y.^2), sqrt((x-5).^2+(y+1).^2), sqrt((x-4).^2+(y-6).^2), sqrt((x-1).^2+(y-3).^2)), 3) + eps;
  1 comentario
Gian Lorenzo
Gian Lorenzo el 6 de Mayo de 2013
Never seen this cat function, very interesting, thank you

Iniciar sesión para comentar.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by