如何将多重for循环期间创建的结果存储到单元格数组中,并将其存储到三维数组中?在Matlab中
在Matlab中,在三个不同的for循环(对于a=1:240、b=1:5和c=1:3)的末尾,我生成一个{1,3}单元数组,其中每个单元包含一个(1,5)数组,该数组只报告240次迭代的最后结果。 除了这个单元数组,我如何生成一个(240,5,3)3d数组来存储每次迭代的结果?如何将多重for循环期间创建的结果存储到单元格数组中,并将其存储到三维数组中?在Matlab中,matlab,multidimensional-array,cell-array,Matlab,Multidimensional Array,Cell Array,在Matlab中,在三个不同的for循环(对于a=1:240、b=1:5和c=1:3)的末尾,我生成一个{1,3}单元数组,其中每个单元包含一个(1,5)数组,该数组只报告240次迭代的最后结果。 除了这个单元数组,我如何生成一个(240,5,3)3d数组来存储每次迭代的结果? 或者,等效地,一个单元格数组再次存储信息,然后将其转换为(240,5,3)3d数组?代码如下: %// Size of the problem Na = 240; Nb = 5; Nc = 3; %// Allocat
或者,等效地,一个单元格数组再次存储信息,然后将其转换为(240,5,3)3d数组?代码如下:
%// Size of the problem
Na = 240;
Nb = 5;
Nc = 3;
%// Allocate empty cell array
result = cell(Na, Nb, Nc);
%// Loop
for a = 1:Na
for b = 1:Nb
for c = 1:Nc
%// Here is the code for computing the
%// result x of the last iteration.
result{a,b,c} = x;
end;
end;
end;
请发布一些示例数据(输入和工作输出)。还可以阅读这篇文章,了解如何为单元格数组编制索引:是的,你说得对。假设我有:a=240;b=5;c=3;A{c}=i=1的单元(1,b):A=j=1的单元(1,b):b=k=1:c A{c}(b)=%assignment end,其中%assignment是通过A,b,c进行的一系列操作。现在,在这个循环的最后,我只得到A{c}(b),而我想得到A(A,b,c),每个迭代的部分结果是A,b,c。请把你评论中的代码放在你的实际问题中,在评论中阅读太难了。他的问题不清楚。为什么只存储最后的结果?为什么是{1,3}单元?究竟存储了什么,标量?如果是这样,答案就变得非常简单,但问题仍然非常复杂,可能对其他人没有帮助。