2017-02-09 19 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

相关问题