Subtract column from a matrix
9 ビュー (過去 30 日間)
古いコメントを表示
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.
採用された回答
Image Analyst
2014 年 9 月 25 日
You could use repmat() to create an array of the same size:
out = inputArray - repmat(columnVector, [1, m]);
6 件のコメント
Titus Edelhofer
2014 年 9 月 26 日
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
2014 年 9 月 26 日
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)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!