Code will not display getting error

15 ビュー (過去 30 日間)
David Hughes
David Hughes 2015 年 7 月 16 日
コメント済み: David Hughes 2015 年 7 月 16 日
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 日
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 日
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.]
  1 件のコメント
David Hughes
David Hughes 2015 年 7 月 16 日
ok, thanks.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangePerformance and Memory についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by