我有一个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
答案 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);