Arrays 如何使用嵌套for循环在Matlab中填充三维数组?
我试图在Matlab中使用嵌套for循环填充3D数组。内部for循环创建一个大小为1920x16的矩阵Xtemp。外部for循环应将68个Xtemp矩阵中的每个矩阵输入到3D数组X中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
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是如何定义的?