特定の範囲を除外する方法
조회 수: 18 (최근 30일)
이전 댓글 표시
特定の範囲を除外する方法を知りたいです.
例として,A=[ 10, 11, 12, 3, 4, 9, 11, 2, 10, 13, 11, 5, 9]という配列があり,この配列から3つの最小要素を検出したいとします.そこで値を検出する際に,既に検出された値の前後2つは検出できないように除外したいです.
配列Aですと,まず2が検出されますが,2が検出されたときに2の前後2つ,つまり[ 9, 11, 10, 13]が除外されるようにしたいです.同様に2の次には,3が検出されますが,3が検出された際は[ 11, 12, 4, 9]が除外されるようにしたです.
抽象的な質問で申し訳ないのですが,よろしくお願いします.
댓글 수: 2
Atsushi Ueno
2022년 11월 11일
편집: Atsushi Ueno
2022년 11월 11일
A = [ 10, 11, 12, 13, 9, 14, 15, 2, 16, 3, 17, 5, 18]
の場合、求める出力は何になりますか?
Atsushi Ueno
2022년 11월 11일
A = [ 10, 11, 12, 13, 9, 14, 15, 2, 16, 3, 17, 5, 18] ⇒ 最小値は 2
A = [ 10, 11, 12, 13, 9, 14, 15, 2, 16, 3, 17, 5, 18] ⇒ 最小値は 5
A = [ 10, 11, 12, 13, 9, 14, 15, 2, 16, 3, 17, 5, 18] ⇒ 最小値は 9
従って、3つの最小要素は [2, 5, 9] となるのか
それとも
A = [ 10, 11, 12, 13, 9, 14, 15, 2, 16, 3, 17, 5, 18] ⇒ 最小値は 2
A = [ 10, 11, 12, 13, 9, 17, 5, 18] ⇒ 最小値は 5
A = [ 10, 11, 12, 13] ⇒ 最小値は 10
従って、3つの最小要素は [2, 5, 10] となるのか
要件が不明だったので質問させて頂きました。前者だと想定しています。
また、除外される数値に次の最小要素が含まれいた場合でも除外すると認識しています。
채택된 답변
Atsushi Ueno
2022년 11월 11일
편집: Atsushi Ueno
2022년 11월 11일
A = [ 10, 11, 12, 3, 4, 9, 11, 2, 10, 13, 11, 5, 9]
answer = [];
for k = 1:3
answer(end+1) = min(A);
idx = find(A == min(A));
A(max(1,idx-2):min(idx+2,numel(A))) = inf
end
answer
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!