How to subtract elements in a matrix from each other
Show older comments
Hello there!
I want to find out how I can subtract the elements of a matrix from one another in a particular order. Lets say that I have the following matrix:
matrix_1 = [30 39 42; 10 15 22; 1 5 7]
This matrix represents the running total counts of some function. To get the counts for each individual cell, I want to subtract the element in a cell from the one before it. In this case, the solution will do something like this:
matrix_2 = [30-22 39-30 42-39; 10-7 15-10 22-15; 1 5-1 7-5]
in order to produce:
matrix_3 = [8 9 12; 3 5 7; 1 4 2]
Does anyone know of a way I can automize this process so I don't need to calculate this by hand?
Thank you in advanced!
Sincerely,
Colin
3 Comments
Geoff Hayes
on 5 Jun 2018
Colin - why does 22 come before 30? Why 7 before 10?
Colin Lynch
on 6 Jun 2018
Accepted Answer
More Answers (1)
KSSV
on 6 Jun 2018
m1 = [30 39 42;
10 15 22;
1 5 7] ;
m2 = [30-22 39-30 42-39;
10-7 15-10 22-15;
1 5-1 7-5] ;
[m,n] = size(m1) ;
iwant = zeros(size(m1)) ;
iwant(:,2:end) = diff(m1')' ;
iwant(m,1) = m1(m,1) ;
for i = 1:m-1
iwant(i,1) = m1(i,1)-m1(i+1,n) ;
end
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!