У меня есть вектор в MATLAB, который представляет значения функции. Я планирую их, но хочу выделить те, которые находятся в определенном диапазоне. В частности, меня интересуют все точки со значением функции, близким к, но меньше, чем «v». То есть для значения «х», я хочу подчеркнуть этот момент, еслиПолучение подмножества вектора MATLAB
abs(x - v) < epsilon && x < v
Если я хочу, чтобы выбрать все «х» точек таким образом, что
abs(x - v) < epsilon
, что я попал на работу (я я не уверен, если это хорошая практика кодирования или нет)
inds = (abs(xs - v) < epsilon) ;
, а затем построить хз против моих ув в осях с
plot(a, ys(inds), xs(inds), 'ks ') ;
Этот подход больше не работает, если я пытаюсь сделать
inds = (abs(xs - v) < epsilon && xs < v) ;
В этом случае я получаю следующее сообщение об ошибке, независимо от того, как я не устраивать скобки:
«операнды к || и & Операторы & должны быть конвертируемыми в логические скалярные значения. '
Я думаю, у меня есть два вопроса
1.) Почему подход не будет работать, если я пытаюсь использовать логический & &? Насколько я могу видеть, я использую выражения, которые могут быть преобразованы в логические скалярные значения.
2.) Является ли это хорошим способом выбрать подмножество точек в MATLAB?
Спасибо, Keeran
К вопросу «почему»: && проводит оценку короткого замыкания (https://en.wikipedia.org/wiki/Short-circuit_evaluation), а & нет. – bdecaf
Это имеет большой смысл. Хорошая информация, спасибо –