2016-09-25 62 views
0

我有一個循環產生的未知矢量。每次創建時,我都想將它添加到矩陣中。如何爲每條線有不同矢量的X線矩陣?

例如,假設我有我的變量包含它們是p

在第一圈我有載體[ 1 2 3 ]

那麼我想p

[ 1 2 3 ] 

然後我產生矢量[ 4 4 5 6 6 ]

然後我想是包含

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

所以我可以做一些像p(1)訪問第一個向量,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