4

連続するゼロ以外の値の最初のチェーン (70 以上) を見つけ、その連続するチェーンの開始値を返す単純な MATLAB プログラムを作成しようとしています。

私はジョイスティックからの動きのデータを扱っていますが、実際のトライアルが始まる前に、ゼロとゼロ以外の値が混在する数千行のデータがあります (トライアルが実際に開始される前に被験者がジョイスティックをわずかに動かしたことから来ています)。

試行からの動きの分析を開始する前に、これらの行を取り除く必要があります。

これは比較的簡単なことだと確信しているので、誰かが洞察を提供してくれることを望んでいました. 前もって感謝します

編集:これが私が試したことです:

s = zeros(size(x1)); 

for i=2:length(x1) 
    if(x1(i-1) ~= 0) 
        s(i) = 1 + s(i-1); 
    end 
end 

display(S); 

72 の最大チェーンを持つベクトル x1 の場合、最大チェーンを見つけて最初の値を返す方法がわからないため、どこをトリムすればよいかがわかります。また、データの最大チェーンは数万の値になるため、これが最善の戦略であるとは本当に思いません。

4

2 に答える 2