1 view (last 30 days)
Cesar Cardenas on 3 May 2023
Commented: Torsten on 3 May 2023
Hello, I'm trying to run this code but I'm still errors with reshape, not siure how to fix it. Any help will be greatly appreciated. Thanks
% clear;
% clc;
nx=225;
ny=66;
nfields=9;
b=reshape(a(1:nx*ny*2),[nx,ny,2]);
x=b(:,:,1);
y=b(:,:,2);
%centroids (improve this by averaging the 4 corners)
xc=x(1:end-1,1:end-1)+diff(x(:,1:end-1))/2 +diff(x(1:end-1,:),[],2)/2;
yc=y(1:end-1,1:end-1)+diff(y(:,1:end-1))/2 +diff(y(1:end-1,:),[],2)/2;
b=reshape(a(nx*ny*2+1:end),[nx-1,ny-1,nfields]);%nine dependent variables
bSz = size(b)
Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.
%plot pressure
figure;surf(xc,yc,b(:,:,4));
##### 2 CommentsShow 1 older commentHide 1 older comment
Matt J on 3 May 2023
Error using reshape. Number of elements must not change
Debugging requires examining input. Have you looked at the number of elements in a(nx*ny*2+1:end), as the error message suggests?

Torsten on 3 May 2023
Moved: Torsten on 3 May 2023
Tell us what you get when you evaluate
numel(a(nx*ny*2+1:end))
and if it equals
(nx-1)*(ny-1)*nfields
If not, you cannot use "reshape" because the number of elements of the source and the target array are different.
Torsten on 3 May 2023
got it, how could I fix it?
Since we all don't know what you are doing in your code, I think you are the only person who could answer this.