9 votos

Para "restar" dos matrices con dimensiones diferentes en la Octava (Matlab)

He matriz y la necesidad de restar otro elemento de la matriz por el elemento de cada fila. Algo como esto:

$$ \begin{pmatrix} x_{1} & x_{2}\\ x_{3} & x_{4}\\ \vdots & \vdots\\ x_{n-1} & x_{n}\\ \end{pmatrix} - \begin{pmatrix} y_{1} & y_{2}\\ \end{pmatrix} $$

Así que el resultado final debería ser algo como:

$$ \begin{pmatrix} x_{1} - y_{1} & x_{2} - y_{2}\\ x_{3} - y_{1} & x_{4} - y_{2}\\ \vdots & \vdots\\ x_{n-1} - y_{1} & x_{n} - y_{2}\\ \end{pmatrix} $$

Cómo hacer esto? Cómo hacer esto en la Octava, Matlab?

Lo siento por noob la pregunta. También sería muy bueno si usted pinta de mí donde leer sobre esto.

4voto

Nir Puntos 46

Con la versión actual (3.6) de la Octava, simplemente restando funcionará

> a = [1 2; 3 4; 5 6; 7 8]
> b = [1 -1]
> a - b
ans =

   0   3
   2   5
   4   7
   6   9

3voto

Derek Gathright Puntos 286

Solución de Stackoveflow - http://stackoverflow.com/a/1773119/38975

bsxfun(@minus, X, y);

1voto

Kariem Puntos 1416

Si tu matrices son sólo dos columnas, aquí es una mala forma de hacerlo:

>> a = [1 2; 3 4; 5 6; 7 8]
>> b = [1 -1]

>> [a(:,1)-b(1),a(:,2)-b(2)]
ans =

   0   3
   2   5
   4   7
   6   9

Sospecho que hay una manera mejor, aunque ...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X