Matlab数组通过循环存储

时间:2017-03-19 18:21:00

标签: arrays matlab loops variable-assignment cell-array

我有一个for循环,每个值a{i} b{i} c{i}每次都与特定数字相等。所以我想知道如何通过循环将所有这些值放入数组中。我使用的方式是指[a{i};b{i};c{i}]它似乎不起作用!如果我保持三个值中的两个有效,但我想要所有值中的数据(a b c

您可以在下面看到(伪)代码:

for i=1:number of cells
   Cell{i}.Tri=[a{i};b{i};c{i}]
end

2 个答案:

答案 0 :(得分:1)

cell2mat就是您所需要的:

a = num2cell(rand(1,10));
b = num2cell(rand(1,10));
c = num2cell(rand(1,10));
abc = cell2mat([a;b;c]);

答案 1 :(得分:0)

使用cellfun结合cat函数,可以在没有for循环的情况下完成。编辑:如评论中所述,cellfun本身就是一个循环。

% Create all variables
a{1}=rand(10);
a=repmat(a,10,1);
b=a;
c=a; 
% Add a cell array of equal size to a. The contents of each cell are the dimension along which to concatenate. 
catarg=num2cell(ones(size(a)))

% Do the concatenation
d=cellfun(@cat,catarg,a,b,c,'UniformOutput',false);