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

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;
desert_scientist90
desert_scientist90 2019년 10월 25일
Thanks John for your answer but, that approach still produces the same error message. The issue is that one side is the product of previous calculations zm3 vs the whole data set which is rain. I am trying to represent the value of zm3 on each grid point with data.

댓글을 달려면 로그인하십시오.

답변 (1개)

Ajay Pattassery
Ajay Pattassery 2019년 10월 29일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2019년 10월 25일

답변:

2019년 10월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by