2010-06-24 2 views
2

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

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

[10 20 30 40 100 120 140] 

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

[10 20 30 40] 

100- > = поэтому не входит.

ответ

0
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 
+10

'б = а (абс (как) Amro

+1

@Amro: Может не upvote этого достаточно - это, безусловно, каноническое Matlabesque способ сделать это. Можете ли вы предоставить это как отдельный ответ? –

5

однострочный решение:

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

b = a(abs(a-s) < s) 
Смежные вопросы