2017-03-19 10 views
0

私はforループを持っていて、それぞれの値は特定の数値で毎回等しい。a{i} b{i} c{i}。だから私はどのようにループを介してすべての値を配列に入れることができるのだろうかと思っていた。私が使っている方法は、この1つを意味する[a{i};b{i};c{i}]それは動作しないようだ!すべての値(a b cループを介して格納されたMatlab配列

から、私は3つの値のうち2が動作している保つが、私は、データが必要な場合は、以下の(擬似)コードを参照することができます

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

どのように機能しませんか? 'a''b''と' c''というデータは何ですか?あなたが3番目の値なしで言ったので、私たちに[MCVE] – Yvon

答えて

0

これは、cat関数と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); 
+0

を表示してください。 'cellfun'はループです。 – excaza

1

cell2matを何が必要です:

a = num2cell(rand(1,10)); 
b = num2cell(rand(1,10)); 
c = num2cell(rand(1,10)); 
abc = cell2mat([a;b;c]); 
関連する問題