Asked by Sultan Al-Hammadi
on 13 Oct 2018

Iluating x & y, I don't want a & b to be always the same as long as 0<=a<=1 & 0<=b<=1. But I have no idea to resolve this issue!!

Answer by John D'Errico
on 13 Oct 2018

You know how to use meshgrid! In fact, I know that, because you used it in your other question.

So it you want to plot something over all combinations of a and b, then why not use meshgrid? (10000 points in each dimensions will be wild overkill of course.)

madhan ravi
on 13 Oct 2018

You need to be clear in what you want to do? Still your statement is not clear

John D'Errico
on 13 Oct 2018

As I said, you resolve the issue by using meshgrid. meshgrid generates ALL combinations of the two variables, a & b.

[a,b] = meshgrid(0:.01:1,0:.01:1);

So a and b are now TWO dimensional arrays, here, each of size 101x101. Now compute x and y as directed.

x = a.^2 - b.^2;

y = a.*b;

plot(x,y,'.')

The result is a sort of triangular domain, with curved edges along the top.

Are you asking how to generate the boundary of that domain? From what you have said, I don't think so.

edgeind = convhull(x(:),y(:));

plot(x(edgeind),y(edgeind),'r-')

But you need to understand that when you want to generate all combinations of two variables like this, USE MESHGRID.

Sultan Al-Hammadi
on 14 Oct 2018

Thank you so much, it looks quite right

Sign in to comment.

Answer by Bruno Luong
on 13 Oct 2018

Edited by Bruno Luong
on 13 Oct 2018

almost right, you need to make a & b oriented in 2 different dimensions (here row for a and column for b)

a=linspace(0,1,101);

b=linspace(0,1,101)'; % <= make a column

x=a.^2-b.^2;

y=a.*b;

plot(x,y,'.b');

Bruno Luong
on 13 Oct 2018

you do not need to have same a and b, simply make them oriented differently

Sultan Al-Hammadi
on 13 Oct 2018

Bruno Luong
on 13 Oct 2018

??? x, y are already computed from all combination of a, b with resolutions of 0.01.

So what your question is about? Might be your should slow down think, then ask a real question.

Sign in to comment.

Answer by Bruno Luong
on 13 Oct 2018

Or perhaps you want this?

a=linspace(0,1,100)';

b=linspace(0,1,100)';

rect = [a 0+0*a;

1+0*b b;

flip(a) 1+0*a;

0+0*b flip(b)];

a = rect(:,1);

b = rect(:,2);

x=a.^2-b.^2;

y=a.*b;

plot(x,y,'-b');

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.