我不会立即跳上我的马车,而是从解决方案开始(已通过示例设置):
%# State the size of each matrix
T = 6; N = 2;
%# State the number of matrices in category A and H (63 in your case - but 2 in my example)
K = 2;
%# Set up some example matrices
ET1_A_C1_l1 = rand(T, N); ET1_A_C2_l1 = 1 + rand(T, N);
ET1_H_C1_l1 = 2 + rand(T, N); ET1_H_C2_l1 = 3 + rand(T, N);
%# Preallocate a matrix to hold the output
M = NaN(2 * T, K * N);
%# Loop over the variables and add them to the matrix using the evil eval
for k = 1:K
M(1:T, (k*N)-1:k*N) = eval(['ET1_A_C', num2str(k), '_l1']);
M(T+1:2*T, (k*N)-1:k*N) = eval(['ET1_H_C', num2str(k), '_l1']);
end
%# Save to a mat file
save('Total_Data.mat', 'M');
现在,马车时间:如果你已经以你现在拥有的形式获得了数据,而你对此无能为力,并且你意识到它处于多么可怕的境地,那么你可以停止阅读现在。
但是,如果您首先负责创建所有这些 E_blah 变量,那么您需要查看@jerad 的答案并开始考虑存储数据的不同方式。单元阵列或结构是实现它的一种方法。或者首先从一个大矩阵开始。但请记住以下两条一般规则:
1) 如果您的工作区中有超过 20 个变量,那么您可能做错了。
2)如果你发现自己经常使用 evil 功能eval
,那么你几乎肯定做错了。