I am getting an error on line 14 it will not display B. Any suggestions? This is the code:
A=[1 2 3;4 5 6;7 8 9]
[m,n]=size(A);
while j<=n
i=1;
sum1=0;
while i<=m
sum1=sum1+A(i,j);
B(i,j)=sum1;
i=i+1;
end
j=j+1;
end
disp(B)

 채택된 답변

the cyclist
the cyclist 2015년 7월 16일

0 개 추천

I could not run your code, because j is not yet defined before you enter the loop. I initialized j to 1, and then it worked (and displayed B):
A=[1 2 3;4 5 6;7 8 9]
[m,n]=size(A);
j=1;
while j<=n
i=1;
sum1=0;
while i<=m
sum1=sum1+A(i,j);
B(i,j)=sum1;
i=i+1;
end
j=j+1;
end
disp(B)
But I don't know if that's exactly what you need.

댓글 수: 1

David Hughes
David Hughes 2015년 7월 16일
Yes, that is what I needed. I didn't see j wasn't initialized. Thanks

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

추가 답변 (1개)

Steven Lord
Steven Lord 2015년 7월 16일

0 개 추천

When you ask about an error, you should include the full, exact text of the error message rather than paraphrasing it.
But in this case, I suspect I know what's going on. What if j <= n is false when you reach your WHILE loop? The body of the WHILE loop will never execute. If B did not exist when you reach your WHILE loop, that will mean it won't exist when you try to display it. [That would mean that if j <= n was true that it was created inside the loop the first time you tried to assign into it. You should avoid doing that; search the documentation for the term "preallocation" for more information.]

카테고리

도움말 센터File Exchange에서 Performance and Memory에 대해 자세히 알아보기

질문:

2015년 7월 16일

댓글:

2015년 7월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by