Submatrices into a Structured Larger Matrix
古いコメントを表示
Hi,
I need a code to create a lower triangular matrix consisting of several submatrices, where each submatrix has its own coordinates [between (xi_0,yi_0) and (xi_f,yi_f)] without any use of for loop.
i.e. Submatrices A, B and C are each 3x3 matrices. I want to create a D matrix as: [A zeros(3x3);B C]
Any help could be useful.
Thanks in advance!
3 件のコメント
Akan Selim
2022 年 10 月 17 日
David Hill
2022 年 10 月 17 日
Hard to understand what you want. Please provide a simple example of A,B,C and the desired output.
Akan Selim
2022 年 10 月 17 日
回答 (1 件)
David Hill
2022 年 10 月 17 日
Adjust as necessary. Need 105 3x3 matrices to fill described pattern above. I assume all A matrices are the same size (3x3).
for k=1:105
A{k}=randi(100,3);%fill A cell array with 3x3 matrices. Recommend you place all your matrices into a cell array or 3D array
A2(:,:,k)=randi(100,3);%3D array instead of cell array
end
B=zeros(1,42);
B2=B;
c=1;
for m=1:14
for n=1:m
B((m-1)*3+1:3*m,(n-1)*3+1:3*n)=A{c};%either storage system will work (A or A2)
B2((m-1)*3+1:3*m,(n-1)*3+1:3*n)=A2(:,:,c);
c=c+1;
end
end
3 件のコメント
Akan Selim
2022 年 10 月 17 日
編集済み: Akan Selim
2022 年 10 月 17 日
David Hill
2022 年 10 月 17 日
There is nothing wrong with loops, especially when having to index into a variable. You should never label variables like A1, A2, A3, ......, A100, but rather store then into an array that can be indexed.
Walter Roberson
2022 年 10 月 17 日
Why are you looking for a way that doesn't utilize any for loops? mat2cell() uses for loops internally -- you can read the source code.
カテゴリ
ヘルプ センター および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!