Error in using reshape
이전 댓글 표시
the error stated: Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.
i'm doing a reshape in producing a taylor diagram. im using the same script but now it's not working because of this reshape issue.
i used reshape as follows;
for observation data;
dimN = length(size(getOBS));
xbox = size(getOBS, dimN-1);
ybox = size(getOBS, dimN );
data = ones(length(exp)+1,xbox*ybox);
data(1,:) = reshape(squeeze(getOBS),1,xbox*ybox);
for experiment;
data(expcount+1,:) = reshape(squeeze(getDAT),1,xbox*ybox);
previously i did the same for a different set of experiments, and did not have any issues. do you know how i can fix this?
the script is attahced
댓글 수: 8
Sharifah Omar
2022년 12월 5일
Image Analyst
2022년 12월 5일
What does this show in the command window:
temp = squeeze(getDAT);
size(temp)
numel(temp)
xbox*ybox
fprintf('Number of columns in data = %d.\n', size(data, 2));
cr
2022년 12월 5일
Perhaps you now have singleton dimensions while you didn't earlier?
Sharifah Omar
2022년 12월 5일
편집: Sharifah Omar
2022년 12월 5일
Voss
2022년 12월 5일
@Sharifah Omar: getDAT is cleared at the end of the big for loop in your script (line 144), along with data and getOBS:
clear data getOBS getDAT
so you won't be able to get any info about them after that.
Try commenting-out that line, run the script again, and then tell us what running these commands gives you:
size(getOBS)
expcount
size(getDAT)
Sharifah Omar
2022년 12월 6일
Voss
2022년 12월 6일
Please tell us the size of getOBS, the value of expcount, and the size of getDAT.
Image Analyst
2022년 12월 6일
When I run your script, I get this:
>> Copy_of_DJF_region1
Unrecognized function or variable 'nc_varget'.
Error in Copy_of_DJF_region1 (line 33)
getOBS = nc_varget('ERA5_DJF_north.nc',var{varcount});
Please attach that nc_varget() function and the file called 'ERA5_DJF_north.nc'
답변 (1개)
KSSV
2022년 12월 6일
The error is simple....you are trying to reshape more number of elements than present in the matrix.
EXample:
A = rand(9,1) ;
B = reshape(A,3,3) ; % as nine lements present in A, you can have 3,3 combination. Nothing lese combination possilbe
C = reshape(A,2,4) ; % error. You cannot have eight elements from nine. If you want to have
D = reshape(A(1:8),2,4) ; % here eight elements are picked and reshaped into eight elements
Note: If A has m*n elements. You can reshape A into m1,n1 so that m1*n1 = m*n.
카테고리
도움말 센터 및 File Exchange에서 Particle & Nuclear Physics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!