Вытягивание подмножества матрицы в MATLAB - PullRequest
2 голосов
/ 24 июня 2010

Я хочу кластеризовать массив, этот массив содержит некоторый угол. Я хочу вычислить разницу между этими степенями и выбрать одну группу между этим массивом, эта группа должна иметь максимальное число, а разница между членами этого не должна быть больше определенного числа.

например, если конкретный номер 30 и массив

[10 20 30 40 100 120 140]

ответ должен быть

[10 20 30 40]

100- 30 > = 30 , поэтому он не включен.

Ответы [ 2 ]

5 голосов
/ 07 января 2011

Однострочное решение:

a = [10 20 30 40 100 120 140];
s = 30;

b = a( abs(a-s) < s )
0 голосов
/ 24 июня 2010
a = [10 20 30 40 100 120 140]; #initial array
b = []; #result array
s = 30;
for i = 1:length(a)
    if abs(a(i) - s) < s
        b = [b a(i)];
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...