特定の範囲を除外する方法
18 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yuma yasuda
am 11 Nov. 2022
Kommentiert: Atsushi Ueno
am 11 Nov. 2022
特定の範囲を除外する方法を知りたいです.
例として,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 Kommentare
Atsushi Ueno
am 11 Nov. 2022
Bearbeitet: Atsushi Ueno
am 11 Nov. 2022
A = [ 10, 11, 12, 13, 9, 14, 15, 2, 16, 3, 17, 5, 18]
の場合、求める出力は何になりますか?
Atsushi Ueno
am 11 Nov. 2022
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] となるのか
要件が不明だったので質問させて頂きました。前者だと想定しています。
また、除外される数値に次の最小要素が含まれいた場合でも除外すると認識しています。
Akzeptierte Antwort
Atsushi Ueno
am 11 Nov. 2022
Bearbeitet: Atsushi Ueno
am 11 Nov. 2022
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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!