Error when building a array code
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi I all, I am new to matlab
I am trying to display the result of zm3(result from the high composite-low/2) at each grid point of data of my data set. My dimensions are x=141, y=71 and t=38. The variable rain is in that dimension. When I run the code below on matlab I get the following error message "Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 141-by-71". How can I fix this?
Thanks in advance
for yr=0:38
for j=141
for i=71
zm3(i,j+1)=rain(:,:,2+yr*38);
end
end
end
댓글 수: 2
John D'Errico
2019년 10월 25일
Surely you should have learned by now (having asked 19 questions on Answers), that if you just need to assign a value like 141 to a variable, you do not need to use a for statement? All these lines do is assign the value 141 to j, and 41 to i.
for j=141
for i=71
And worse, because you have created for loops, you then need to have end statements too. Just do this:
j = 141;
i = 41;
답변 (1개)
Ajay Pattassery
2019년 10월 29일
Hello,
The error is generated since the right hand side of
zm3(i,j+1) = rain(:,:,2+yr*38);
is a matrix with dimension 141x71 where the left hand side is just a scalar. Hence assigining a matrix to a scalar position is causing the error.
I assume that you wanted to retrieve rain(:,:,2), rain(:,:,40), rain(:,:,78) etc. till rain(:,:,1446) and assign it to zm3, then you could do the following.
for yr=0:38
zm3(:,:,yr+1)=rain(:,:,2+yr*38);
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!