2017-02-09 35 views
0

我有3x2單元陣列,名爲signals。所有單元都包含一個8x6xN的數組,其中包含整數。我正在嘗試將每行向下移動一行,並用NaN覆蓋第一行。但是,我正在努力尋找有關索引的正確語法。我可以像這樣操縱一個特定的單元格:使用單元格陣列時的索引

signals{1,1}(2:end, :) = signals{1,1}(1:end-1, :); 
signals{1,1}(1,:) = NaN; 

我該如何將這種操作應用到整個單元陣列?我基本上在尋找這樣的東西:

signals{:}(2:end, :) = signals{:}(1:end-1, :); 

回答

1

您需要遍歷單元格數組中的每個元素並對這些元素中的每一個執行操作。

for k = 1:numel(signals) 
    signals{k}(2:end, :) = signals{k}(1:end-1, :); 
    signals{k}(1,:) = NaN; 
end 
+0

有沒有辦法解決這個問題,而不使用循環。我正在尋找速度最有效的方法,因爲信號矩陣可能變得相當大。 – Andi

+0

@Andi號感謝JIT加速,使用這種循環的性能損失很小。另外,如果你真的想要性能,那麼如果可能的話,我會使用多維數組而不是單元陣列。 – Suever

相關問題