Предположим, у меня есть вектор чисел с плавающей запятой. Назовите его x
.Matlab условный максимум без изменения вектора
Обычно, если я хочу наибольшее число в этом x
, я могу назвать функцию matlab max(x)
.
Однако предположим, что я хочу наибольшее число, но исключая определенные индексы в векторе, которые указаны в каком-либо другом векторе.
Самый простой способ сделать это (и то, как я это сделаю на C) - это пропустить вектор и продолжить обновление max, пропуская любой индекс, который находится в моем втором векторе. То есть, выполните линейный поиск максимума и пропустите индексы, которые я не хочу.
Однако, интересно, есть ли в Matlab более традиционный способ решить эту проблему.
Вы должны использовать логики, поэтому вместо них используйте 'true', а вместо« 0 »используйте' false'. «double» zeroes будут вызывать ошибку, а 'double' будут интерпретироваться как индекс первого элемента в массиве. –