Прошло немного времени с тех пор, как я провел матричные операции в MATLAB, поэтому, пожалуйста, простите меня, если это легко разрешимо.MATLAB - Выполнение работы по матричным индексам без петли
У меня есть матрица NxM A
, и я хотел бы выполнить операцию с индексами столбцов A
. Я знаю, как это сделать, используя цикл for
, но так как я использую MATLAB, я бы хотел использовать способность MATLAB быстро выполнять операции над матрицами.
Предположим, у меня есть функция, называемая myFunc
. Есть ли способ сделать следующее без for
цикла (например, с помощью умножения матриц):
for i=1:M
A(:, floor(i*myFunc())) = A(:, i)
Как будет функционировать 'myFunc()' на 'i'? –
Если myFunc (i) для разных i возвращает другое значение, нам нужно убедиться, что myFunc ([1: M]) также возвращает вектор. И используйте. *. –
@GeorgeSkoptsov Вопрос не сказал ничего о том, что является параметром и что будет возвращено myFunc(), он может вернуть скаляр или вектор, если скаляр возвращается, тогда нет необходимости. *; если вектор возвращается, необходимо убедиться, что он имеет тот же размер, что и 1: M. Else using. * Приведет к ошибке –