What is going wrong with my mesh command?

1 vue (au cours des 30 derniers jours)
Gian Lorenzo
Gian Lorenzo le 6 Mai 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?

Réponse acceptée

Iman Ansari
Iman Ansari le 6 Mai 2013
Modifié(e) : Iman Ansari le 6 Mai 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 commentaires
Gian Lorenzo
Gian Lorenzo le 6 Mai 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 le 6 Mai 2013
Modifié(e) : Iman Ansari le 6 Mai 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 6 Mai 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 commentaire
Gian Lorenzo
Gian Lorenzo le 6 Mai 2013
Never seen this cat function, very interesting, thank you

Connectez-vous pour commenter.

Catégories

En savoir plus sur Contour Plots dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by