2016-07-07 15 views
0

find関数を特定の範囲内で使用するにはどうすればよいですか?MATLAB:範囲内の関数を検索

と言えば、ランダムな値を持つ配列arr1があります。私はスタートfind機能をして、ここで使用することができどのように分析したい部分の&終了インデックス(この例では、私は値が0.8よりも大きいときの最初の発生を検索する)

を持っています開始と終了の指標と条件も同じですか?例えば

:感謝

arr1 = rand(1000,1); 
start_ind = [100;500;850]; 
end_ind = [160;620;925]; 

for i = 1:length(start_ind) 
    output = find(arr1(start_ind(i):end_ind(i)) >=0.8); % ???? 
end 

答えて

1

は最初の試合を取得するためにfindの第2引数を使用します。その後、start_ind - 1を追加することによって、インデックスをシフトすることができます。

arr1 = rand(1000,1); 
start_ind = [100; 500; 850]; 
end_ind = [160; 620; 925]; 

output = zeros(length(start_ind), 1); 
for i = 1:length(start_ind) 
    output(i) = find(arr1(start_ind(i):end_ind(i)) >=0.8, 1) + start_ind(i) - 1; 
end 
+0

を**あなたの助け**涅槃-MSUいただきありがとうございます。この場合、0.8を超える値が見つかるとうまくいきます。それ以外の場合は、「四角形の空行列で不適切な割り当て」エラーがスローされます。 – Bensa

+0

見つけました。この2行目のコードを追加すると、値が見つからない場合に動作します: 'output = find(boost(str_ind(i):end_ind(i))> = 165,1)+ str_ind(i)-1; index(i、1:length(output))=出力; 「ありがとう。 – Bensa

関連する問題