duplicados posibles:
How to subtract a vector from each row of a matrix?
How can I divide each row of a matrix by a fixed row?Matlab - restar rápidamente [1xN] Array de [MxN] elementos de matriz
I tienen matriz (M1) de M filas y 4 columnas . Tengo otra matriz (M2) de 1 fila y 4 columnas. Me gustaría restar cada elemento en M1 por su elemento de columna respectivo en M2. En otras palabras, cada columna de M1 necesita ser subtraída por el escalar en la misma posición de columna en M2. Podría llamar repmat(M2,M,1)
, lo que crearía una matriz NUEVO de tamaño MxN, donde cada elemento en una columna era la misma, y luego hacer un elemento por elemento resta:
M2new = repmat(M2,M,1)
final = M1 - M2new
, sin embargo, esto es dos líneas de código y crea un nuevo elemento en la memoria. ¿Cuál es la forma más rápida y menos intensiva de memoria de realizar esta operación?
Duplicado: [¿Cómo restar un vector de cada fila de una matriz?] (Http://stackoverflow.com/questions/5342857/how-to-subtract-a-vector-from-each-row-of- a-matrix) ... que a su vez era un duplicado de estos (con una operación aritmética diferente): [¿Cómo se dividen los elementos de la matriz por sumas de columna en MATLAB?] (http://stackoverflow.com/questions/1773099/ cómo-do-i-divide-matriz-elementos-por-columna-sumas-en-matlab), [¿Cómo puedo dividir cada fila de una matriz por una fila fija?] (http://stackoverflow.com/questions/ 4723824/how-can-i-divide-each-row-of-a-matrix-by-a-fixed-row) ... Parece ser un problema muy común. ;) – gnovice