Vectorisation of 2 2d matrix

1 Ansicht (letzte 30 Tage)
Li zifan
Li zifan am 27 Aug. 2018
Bearbeitet: Stephen23 am 27 Aug. 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

Akzeptierte Antwort

Stephen23
Stephen23 am 27 Aug. 2018
Bearbeitet: Stephen23 am 27 Aug. 2018
For MATLAB versions R2016b+:
C = A - reshape(B,1,1,[])
For earlier versions:
C = bsxfun(@minus,A,reshape(B,1,1,[]))

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by