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

26 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

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!