分享一个动态储存数据的小技巧:
问题描述:需要在循环的过程中存储数据,但是需要存储数据的行数是在计算过程中动态变化的。
解决方法:
% 以下代码只是为了举例说明问题
% 假设要连接 A1,A2,A3
index1 = 1;
A1 = [1 2];
A2 = [3 4; 5 6];
A3 = [7 8; 9 10; 11 12];
for i = 1:3
index2 = index1 + i-1;
% 下面为代码主体部分,重点在于index1,和index2的设置
if i = 1
B(index1:index2,:) = A1;
esleif i = 2
B(index1:index2,:) = A2;
else
B(index1:index2,:) = A3;
end
index1 = index2 + 1; % +1直接接在之前的矩阵后面,也可以根据需要+2空一行,以示区别。
end
大家可能会说,矩阵的拼接可以直接用 [] 就可以实现了啊,但是真是的问题往往是并不知道A1、A2、A3长什么样。
注意:该方法矩阵的列数必须是相同的。
------------------------------------------------------------------------------------------------------------------------------
今天写代码的时候突然想到的小技巧,希望大家喜欢!如果大家有更简便的方法,欢迎交流啦!