Vectorisation of 2 2d matrix

2 visualizaciones (últimos 30 días)
Li zifan
Li zifan el 27 de Ag. de 2018
Editada: Stephen23 el 27 de Ag. de 2018
Hi, I want to answer of 2 arrays without using loops,
A=rand(100,100)
B=rand(8,1)
The out put C is going to be a 100*100*8 array, each layer is the difference between A and corresponding B row.
e.g. The second layer of C is gonna be A(:,:)-B(2,:).
Is there a way to manage this with out for loop?
Thanks

Respuesta aceptada

Stephen23
Stephen23 el 27 de Ag. de 2018
Editada: Stephen23 el 27 de Ag. de 2018
For MATLAB versions R2016b+:
C = A - reshape(B,1,1,[])
For earlier versions:
C = bsxfun(@minus,A,reshape(B,1,1,[]))

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by