What is going wrong with my mesh command?

2 ビュー (過去 30 日間)
Gian Lorenzo
Gian Lorenzo 2013 年 5 月 6 日
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?

採用された回答

Iman Ansari
Iman Ansari 2013 年 5 月 6 日
編集済み: Iman Ansari 2013 年 5 月 6 日
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 件のコメント
Gian Lorenzo
Gian Lorenzo 2013 年 5 月 6 日
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 2013 年 5 月 6 日
編集済み: Iman Ansari 2013 年 5 月 6 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 5 月 6 日
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 件のコメント
Gian Lorenzo
Gian Lorenzo 2013 年 5 月 6 日
Never seen this cat function, very interesting, thank you

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeContour Plots についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by