2014-04-14 83 views
1

假设我有一个单元格数组raweeg,其中的每个单元格都是一个矩阵,其中第一列中的时间点和第二列中的一些标记。我想创建一个矢量来存储时间点,当标记不等于-1时。我发现了一种非优雅(而不是工作)的方式来创建一个大小为1x1的零向量,然后在循环中追加以下值。如何将元素添加到循环中的矢量

P.S .:有96个非“ - 1”值和相应的时间点。

startpoints = zeros(1,1); 

for i = length(raweeg{1,1}(:,1)) 
    if raweeg{1,1}(i,2) ~= -1 
    startpoints(end+1,1) = raweeg{1,1}(i,1); 
    end 
end 

谢谢

+0

运气好的答案?该错误被识别为缺少'1:',并给出了一个向量化的解决方案。如果可行,请接受。谢谢! :) – chappjc

+0

谢谢!我是新来的系统,它有点混乱。 – user3503398

回答

1

矢量化是这样的,对于raweeg定格:

startpoints = raweeg{1,1}(raweeg{1,1}(:,2) ~= -1, 1); 

这就是所谓的logical indexing

只要确保您的标记不是用浮点计算生成的,或者比较可能会经常失败。


P.S.在你的代码的问题是for循环语句,它应该是:

for i = 1:length(raweeg{1,1}(:,1))

或者更好,for i = 1:size(raweeg{1,1},1)

没有“1:”部分,它只有一个迭代,即最后一行。

相关问题