Asked by Gian Lorenzo
on 6 May 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?

Answer by Iman Ansari
on 6 May 2013

Edited by Iman Ansari
on 6 May 2013

Accepted answer

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)

Gian Lorenzo
on 6 May 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
on 6 May 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.

Answer by Walter Roberson
on 6 May 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;

Gian Lorenzo
on 6 May 2013

Never seen this cat function, very interesting, thank you

Related Content

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments