Arrays 如何使用嵌套for循环在Matlab中填充三维数组?

Arrays 如何使用嵌套for循环在Matlab中填充三维数组?,arrays,matlab,for-loop,matrix,multidimensional-array,Arrays,Matlab,For Loop,Matrix,Multidimensional Array,我试图在Matlab中使用嵌套for循环填充3D数组。内部for循环创建一个大小为1920x16的矩阵Xtemp。外部for循环应将68个Xtemp矩阵中的每个矩阵输入到3D数组X中 Xtemp = []; X = []; X = zeros(1920,16,68); for j= 1:68 for i= 1:16 Xtemp = [Xtemp illum(:, i, j)]; end X(:,:,j) = Xtemp; end 我得到以下错误: S

我试图在Matlab中使用嵌套for循环填充3D数组。内部for循环创建一个大小为1920x16的矩阵Xtemp。外部for循环应将68个Xtemp矩阵中的每个矩阵输入到3D数组X中

Xtemp = [];  
X = [];
X = zeros(1920,16,68);
for j= 1:68
    for i= 1:16
        Xtemp = [Xtemp illum(:, i, j)];
    end
    X(:,:,j) = Xtemp;
end
我得到以下错误:

Subscripted assignment dimension mismatch.
Error in proj1_lda (line 25)
    X(:,:,j) = Xtemp;
如果我删除外部for循环,我只能将第一个矩阵(j=1)填充到3D数组中,因此我知道维度匹配,语法应该正确。但当我尝试填写所有68个矩阵(或超过1个)时,我得到了错误。有趣的是,即使我多次运行for循环,但我使用X(:,:,1)=Xtemp,这也会产生错误。因此,问题似乎与多次运行外部for循环直接相关


我花了很多时间试图弄明白这一点,非常感谢您的帮助。

在第一次迭代后,您忘记了清除
Xtemp

因此,在第二次完成内部循环后,
Xtemp
的“宽度”是32


您可以将行
Xtemp=[]
移动到外部循环的开头。

第一次迭代后,您忘记清除
Xtemp

因此,在第二次完成内部循环后,
Xtemp
的“宽度”是32


您可以将行
Xtemp=[]
移动到外部循环的开头。

illum是如何定义的?illum是如何定义的?