2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Matlab, быстрое сравнение числа с элементами из массива
Сообщение17.10.2013, 18:27 


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

 Профиль  
                  
 
 Re: Matlab, быстрое сравнение числа с элементами из массива
Сообщение22.10.2013, 06:46 
Заслуженный участник


11/05/08
32166
Tigran-aminator в сообщении #776531 писал(а):
сравнить данное число, с элементами из массива, и получить номер элемента, который меньше чем данное число, но следующий элемент из массива уже больше чем данное число.

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

 Профиль  
                  
 
 Re: Matlab, быстрое сравнение числа с элементами из массива
Сообщение22.10.2013, 13:11 


05/09/12
2587
Вам поможет функция find

 Профиль  
                  
 
 Re: Matlab, быстрое сравнение числа с элементами из массива
Сообщение04.11.2013, 18:41 
Экс-модератор
Аватара пользователя


23/12/05
12064
Код:
find(mas(1:end-1)<nuber&mas(2:end)>nuber)

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group