Как получить индексы определенных элементов на основе значения и затем заменить их в MATLAB? - PullRequest
0 голосов
/ 17 октября 2010

Из упражнений в книге, которую я использую, чтобы выучить MATLAB:

Дано х = [3 15 9 12 -1 0 -12 9 6 1], предоставить команду (ы), которая будет

  • А) установить значения х, которые положительное значение до нуля

  • B) установить значения, кратные 3 до 3 (рем поможет здесь)

  • C) умножить значения х, которые даже на 5

  • D) извлечь значения х, которые больше 10 в вектор под названием у

  • E) установить значения в х, которые меньше чем среднее значение до нуля

  • F) установить значения в х, которые выше среднего, чтобы их отличие от среднего

Ответы [ 3 ]

0 голосов
/ 18 октября 2010
x = [3 15 9 12 -1 0 -12 9 6 1]

vi = (x < 0) % statement that returns a boolean, gives a vector like
             % [0 0 0 0 1 0 1 0 0 0]

x(vi) = -x(vi) % does the operation (negating in this case) on the relevant
               % values of x (those with a 1 from above)

На самом деле, не выполняя домашнее задание, все они следуют вышеуказанному шаблону.

0 голосов
/ 18 октября 2010

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

Что касается ответа на ваш вопрос, у MATLAB есть фантастический браузер функций, я настоятельно рекомендую вам взглянуть на него. С правильно подобранными ключевыми словами вы можете пройти долгий путь. :)

0 голосов
/ 17 октября 2010

Вопрос а) научит вас следующим элементам:

  • find функция, которая возвращает индексы при заданном условии, в вашем случае x> 0
  • используйте индексирование, чтобы установить выбранные значения в x равными 0

, чтобы продолжить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...