2012-03-03 7 views
0

ループを使用せずにデータセット内の次の/前の行を参照する方法はありますか?ループを使用しないデータセットの次/前の行

私がしようとしているのは、ある行の値が前の行の同じ列の値と同じである行とその行の何回目かを見つけることです。

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を追加する必要がある場合があります)。

EDIT:実際には、あなたが望むのはDataset.Repeat = [0 diff(Dataset.Value)==0 ];です。ここで、0の連結は、最初のものではなく、繰り返しの要素の2番目を示すものです。

関連する問題