Duplicate a matrix using nested for loops

2 ビュー (過去 30 日間)
Tyler M
Tyler M 2018 年 2 月 20 日
コメント済み: Stephen23 2018 年 2 月 20 日
In Matlab I have been trying to duplicate matrix A [2,4,1;6,7,2;3,5,9] to matrix B using nested for loops. I know the general format uses an algorithm within the loop ie.
m=3
n=3
b=zeros(m,n)
for i=1:m
for j=1:n
B(m,n)= *algorithm here*
end
end
I can not find an algorithm that would work for this matrix and I believe that it was designed this way on purpose. I have tried pulling numbers out of matrix A using
A=[2,4,1;6,7,2;3,5,9]
for c=A(1,:)
for d=A(2,:)
for e=A(3,:)
end
end
end
B=[c;d;e]
but this just assigns the values for the last column of A to a 1x3 matrix B (B=[1;2;9]
I have also tried scouring the www for help with how to duplicated a matrix that is not algorithmic using nested for loops to no avail.
Any help or guidance would be much appreciated.
  1 件のコメント
Stephen23
Stephen23 2018 年 2 月 20 日
???
Why not just avoid the pointless loops and use B=A ?

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

採用された回答

Roger Stafford
Roger Stafford 2018 年 2 月 20 日
What's wrong with
B = A; % ?
However, if you absolutely must do it with nested for-loops then do:
[m,n] = size(A);
B = zeros(m,n);
for i1 = 1:m
for i2 = 1:n
B(i1,i2) = A(i1,i2);
end
end
_
  3 件のコメント
Roger Stafford
Roger Stafford 2018 年 2 月 20 日
編集済み: Roger Stafford 2018 年 2 月 20 日
You wouldn't want to use just B=A inside those for-loops. That would be extremely wasteful of computing time. B=A by itself does the job without for-loops. Using for-loops with B(i1,i2) = A(i1,i2); is bad enough.
Tyler M
Tyler M 2018 年 2 月 20 日
I see your points. I will definitely keep these in mind while writing code in the future!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by