Matlab - быстрое вычитание [1xN] массива из [MxN] элементов матрицы [дубликат]

Возможные дубликаты:
Как вычесть вектор из каждой строки матрицы?
Как я могу разделить каждую строку матрицы на фиксированную строку?

I есть матрица (M1) из M строк и 4 столбцов. У меня есть другой массив (M2) из ​​1 строки и 4 столбцов. I ' d хотел бы вычесть каждый элемент в M1 из соответствующего элемента столбца в M2. Другими словами, каждый столбец M1 должен быть вычтен скаляром в той же позиции столбца в M2. Я мог бы вызвать repmat (M2, M, 1) , который создаст НОВУЮ матрицу размера MxN, где каждый элемент в столбце будет одинаковым, а затем выполнить вычитание элемента за элементом:

M2new = repmat(M2,M,1)
final = M1 - M2new

Однако это две строки кода, которые создают новый элемент в памяти. Каков самый быстрый и наименее затратный способ выполнения этой операции?

8
задан Community 23 May 2017 в 02:13
поделиться