2016-09-25 3 views
0

私はループによって生成された未知のベクトルを持っています。 1つが作成されるたびに、それをマトリックスに追加したいと思います。行ごとに異なるベクトルを持つX行の行列を持つ方法は?

例えば、私はそれらを含む変数がpであるとしましょう。私はベクトル[ 1 2 3 ]

を持って、私はp

[ 1 2 3 ] 

になりたい最初のターンで

その後、私はベクトル[ 4 4 5 6 6 ]

を生産その後、私はあることが

[ 1 2 3 ] 
[ 4 4 5 6 6 ] 

が含まれていたいですだから私は01のようなことをすることができます最初のベクトルにアクセスするには、2番目にはp(2)です。

私が使用できる表現はどれくらいですか?

+0

あなたは[セル配列](http://www.mathworks.com/help/matlab/cell-arrays.html)が必要ですマトリックスではない。 – EBH

答えて

3

MATLABはスイスチーズが好きではないため、マトリックスは長方形である必要があります。あなたがその表現に得ることができる最も近い細胞である:

p{1} = [1 2 3]; 
p{2} = [ 4 4 5 6 6 ]; 

細胞は、その不規則な形状の行列の手当とその要素間でも、不均一なデータ型の行列に比べて作業する方が面倒少し、ですが、で彼らは少なくともあなたが望むことをします。

他のオプションは、私が言うと思い、ゼロ詰めのようになります。

p = [1 2 3]; 
newvec = [ 4 4 5 6 6 ]; 
if length(newvec)>length(p) 
    p = [p zeros(size(newvec)-size(p))]; 
    else 
     newvec = [newvec zeros(size(p)-size(newvec))]; 
end 
+0

また、 'p'に申請するセルの数をあらかじめ割り当てる必要があります。 – EBH

+0

私は知っている、私はちょうど彼がそれに注意を払っていない場合は、OPのためにこれを明確にしたかった。 – EBH

関連する問題