2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Matlab, быстрое сравнение числа с элементами из массива
Сообщение17.10.2013, 18:27 
В Matlab, нужно сравнить данное число, с элементами из массива, и получить номер элемента, который меньше чем данное число, но следующий элемент из массива уже больше чем данное число.
Мой вариант:
j=1;
while mas(j)<nuber
j=j+1;
end
j
Но работает это медленно. Существует ли более быстрый способ сделать это? может есть стандартная функция?

 
 
 
 Re: Matlab, быстрое сравнение числа с элементами из массива
Сообщение22.10.2013, 06:46 
Tigran-aminator в сообщении #776531 писал(а):
сравнить данное число, с элементами из массива, и получить номер элемента, который меньше чем данное число, но следующий элемент из массива уже больше чем данное число.

Задача поставлена некорректно. Если же заранее предполагать, что массив строго упорядочен и число не из него, то сработает что-нибудь типа
Код:
j=sum(mas < nuber+mas*0)

 
 
 
 Re: Matlab, быстрое сравнение числа с элементами из массива
Сообщение22.10.2013, 13:11 
Вам поможет функция find

 
 
 
 Re: Matlab, быстрое сравнение числа с элементами из массива
Сообщение04.11.2013, 18:41 
Аватара пользователя
Код:
find(mas(1:end-1)<nuber&mas(2:end)>nuber)

вернет номера элементов массива mas которые меньше nuber, но такие, что следующий за ними элемент больше nuber. Если пар чисел, удовлетворяющих этому условию несколько, то результатом будут номера всех этих пар. Обратите внимание, что, следуя вашему условию, неравенства строгие, но, я подозреваю, вам нужно одно из условий сделать нестрогим

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group