Subtract column from a matrix
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mikhail
am 25 Sep. 2014
Kommentiert: Image Analyst
am 26 Sep. 2014
In matlab it is easy to subtract number from column or row. I want to subtract column [n x 1] from a matrix [n x m]. Is it possible to doit without for loop? When I wrote it just with '-', there was dimension mismatch error. Thanks.
Akzeptierte Antwort
Image Analyst
am 25 Sep. 2014
You could use repmat() to create an array of the same size:
out = inputArray - repmat(columnVector, [1, m]);
6 Kommentare
Titus Edelhofer
am 26 Sep. 2014
Nice comparison!
One aspect has not been mentioned yet: for larger matrices/vectors the memoryfriendliness of bsxfun compared to repmat (which blows up the memory usage significantly).
Titus
Image Analyst
am 26 Sep. 2014
Good point. This can be done by adding these lines into the loop:
memoryUsed = memory;
fprintf('Memory used by MATLAB = %d bytes.\n', memoryUsed.MemUsedMATLAB)
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!