2014-04-14 112 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:」部分,它只有一個迭代,即最後一行。

相關問題