2012-03-03 13 views
0

有沒有人有沒有使用循環(在MATLAB中)引用數據集中下一條/上一條線的想法?沒有使用循環的數據集中的下一條/上一條線

我想要做的是找到一行中的值與前一行中同一列中的值相同的行以及它發生的次數。

通常情況下,我會用一個循環,因此,例如: -

for n = 2:100 
    if Dataset.Value(n) == Dataset.Value(n-1) 
     Dataset.Repeat(n) = 1 
    end 
end 

但我有幾萬行的範圍的文件,它需要太多的時間去通過這一切方式,所以有沒有辦法我可以做到這一點,而不使用循環?

喜歡的東西:

Dataset.Repeat(Dataset.Value(current_line) == Dataset.Value(previous_line)) = 1; 

除了我不認爲這是一個previous_line命令?

謝謝。

回答

1

您可以嘗試使用diff命令。像

find(diff(Dataset.Value)==0) 

的東西應該給你重複值的索引(您可能需要加1點到重複的元素在你的代碼)。

編輯:實際上,我認爲你想要的是Dataset.Repeat = [0 diff(Dataset.Value)==0 ];,其中與0的連接要轉變爲指示重複元素的第二個而不是第一個。

相關問題