MATLAB:如何使用for循环将10个2D矩阵制作成单个3D矩阵?

时间:2017-10-14 01:24:19

标签: matlab

我有十个二维矩阵

matrix_Q1 = [Q1_inner(:,1) Q1_outer(:,2) Q1_inner(:,1) Q1_outer(:,2)]; 

这是我当前的for循环,这是不正确的

n = 1; 
for X_num = matrix_Q1 : matrix_Q10; 
    X_new(:,:,n) = X_num; 
    n = n+1; 
end 

我知道如何使用x(:,:,1)语法创建3D矩阵,但如何以循环格式执行此操作?

2 个答案:

答案 0 :(得分:0)

为什么要用它创建3D矩阵?也许你可以使用一个单元格代替(see here details on cells),然后你可以使用X_new {i}或X_new {i,j}来存储每个2D矩阵?

答案 1 :(得分:0)

所有十个2D矩阵都是不同名称这一事实并不适合使用循环,除非你使用我通常不喜欢使用的eval函数,但在这种情况下是必要的。

我会这样做:

sz = size(matrix_Q1);

X_new = zeros(sz(1),sz(2),10);

for n = 1:10
    X_new(:,:,n) = eval(['matrix_Q',num2str(n)]);
end