Subscripted assignment dimension mismatch error

1 Ansicht (letzte 30 Tage)
Alexandra Roxana
Alexandra Roxana am 22 Okt. 2021
Kommentiert: Alexandra Roxana am 23 Okt. 2021
I'm having this error and unfortunately I can't seem to see what's wrong in it. Here are the dimension of the variables:
ki=150, a=0, b=2, hx=0.1818, c=0, d=5, hy=0.3125, pi=150x1 double
Thank you in advance!
figure(1)
U(1:ki,1:ki)=pi;
[X,Y]=meshgrid(a:hx:b,c:hy:d);
surf(X,Y,U');

Akzeptierte Antwort

Dave B
Dave B am 22 Okt. 2021
When you write:
U(1:ki,1:ki)=pi;
You're trying to put a 150x1 into a 150x150...Maybe what you intended was:
U(1:ki,1:ki)=repmat(pi,1,150);
It's a little unclear what you're after, but if you want to assign to a 150x150 you should probably give it a 150x150
  4 Kommentare
Dave B
Dave B am 22 Okt. 2021
You said you calculate pressure from u1, so I'm not sure what the surface is as pressure doesn't depend on u2...
U = repmat(pi,1,ki);
[X,Y] = meshgrid(linspace(a,b,ki),linspace(c,d,ki));
surf(X,Y,U');
For example:
u1=linspace(0,2*pi,100)';
u2=linspace(0,1,100)';
zi=sin(u1);
[u1i,u2i]=meshgrid(u1,u2);
surf(u1i,u2i,repmat(zi,1,numel(u1)))
If you want to form a matrix U out of various combinations of u1 and u2, I think you'll need interpolation (e.g. interp2, scatteredinterpolant, griddedinterpolant)
Alexandra Roxana
Alexandra Roxana am 23 Okt. 2021
It's the first time I'm computing something like that, but at least I can see a graph. Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by