How to subtract elements in a matrix from each other
Mostrar comentarios más antiguos
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 comentarios
Geoff Hayes
el 5 de Jun. de 2018
Colin - why does 22 come before 30? Why 7 before 10?
Colin Lynch
el 6 de Jun. de 2018
Respuesta aceptada
Más respuestas (1)
KSSV
el 6 de Jun. de 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
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!