Subscripted assignment dimension mismatch error

1 vue (au cours des 30 derniers jours)
Alexandra Roxana
Alexandra Roxana le 22 Oct 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');

Réponse acceptée

Dave B
Dave B le 22 Oct 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 commentaires
Dave B
Dave B le 22 Oct 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 le 23 Oct 2021
It's the first time I'm computing something like that, but at least I can see a graph. Thank you!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by