How to merge matrix in a loop?
2 ビュー (過去 30 日間)
古いコメントを表示
Suppose I have four matrix
A,B,C and D. These all are (mx3) matrix where m is some number.
and I have to define a number as an user input which is N.
Now I want a merge matrix such that,
for N = 1
New_matrix = [A]
for N = 2
New_matrix = [A
B
C]
for N = 3
New_matrix = [A
B
C
D
A]
for N = 4
New_matrix = [A
B
C
D
A
B
C]
and so on......
0 件のコメント
採用された回答
David Hill
2022 年 10 月 28 日
A=randi(10,4,3)
B=randi(10,5,3)
C=randi(10,6,3)
D=randi(10,7,3)
N=2;
newMatrix=generateMatrix(A,B,C,D,N)
function newMatrix=generateMatrix(A,B,C,D,N)
n=2*N-1;
s=[size(A,1),size(B,1),size(C,1),size(D,1)];
newMatrix=repmat([A;B;C;D],ceil(n/4),1);
S=sum(s*floor(n/4))+sum(s(1:mod(n,4)));
newMatrix=newMatrix(1:S,:);
end
その他の回答 (1 件)
KALYAN ACHARJYA
2022 年 10 月 28 日
編集済み: KALYAN ACHARJYA
2022 年 10 月 28 日
% Just example
A=rand(4,3);
B=rand(4,3);
C=rand(4,3);
D=rand(4,3);
data_mat={A,B,C,D}; % Created to handle data easily
N=4 ; % Example or length of data_mat
data=cell(1,N); %Memory Pre-allocation
for i=1:N
data{i}=horzcat(data_mat{1:i});
end
data
You may look for cellfun also, please do the modification as per requirements.
2 件のコメント
KALYAN ACHARJYA
2022 年 10 月 28 日
To store matrix or any other data type, cell array is much easier way to handle it.
Hope it helps!
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!