How to subtract each column of a matrix from a column vector?

108 views (last 30 days)
How to subtract each column of a matrix from a column vector?

Answers (2)

James Tursa
James Tursa on 31 Mar 2022
Edited: James Tursa on 31 Mar 2022
Just do a usual subtraction and let MATLAB implicit expansion kick in:
M = your matrix
v = your column vector
result = v - M; % implicit expansion

Image Analyst
Image Analyst on 1 Apr 2022
If you don't have a version that has implicit conversion yet, you can do this, where v is your vector and m is your matrix.
% Create sample data.
v = randi(99, 3, 1)
v = 3×1
28 23 78
m = randi(99, 3, 3)
m = 3×3
82 23 62 42 48 78 67 16 83
[rows, columns] = size(m);
diffMatrix = zeros(rows, columns);
% Subtract each column of m one at a time from v.
for col = 1 : columns
diffMatrix(:, col) = v - m(:, col);
end
% Show result in command window:
diffMatrix
diffMatrix = 3×3
-54 5 -34 -19 -25 -55 11 62 -5

Community Treasure Hunt

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

Start Hunting!