Row subtraction in matrix
Mostra commenti meno recenti
I am trying to subtract each row in a matrix from the row after it. The function diff does x_{i} - x_{i+1}, I need to do x_{i}-x_{i-1}. I cannot find anything that will tell me how to do this. I am sure it is something simple that I am just overlooking.
3 Commenti
James Tursa
il 23 Mag 2018
No. diff() does row{i}-row{i-1} just like you apparently want.
Stephen23
il 23 Mag 2018
[X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
which seems to match what you asked for.
Ian Loveless
il 23 Mag 2018
Risposte (1)
James Tursa
il 23 Mag 2018
Modificato: James Tursa
il 23 Mag 2018
Just negate the usual diff() result. E.g.,
x = your matrix
result = -diff(x);
6 Commenti
Ian Loveless
il 23 Mag 2018
James Tursa
il 23 Mag 2018
Really? Have you tried it?
Ian Loveless
il 23 Mag 2018
James Tursa
il 23 Mag 2018
Modificato: James Tursa
il 23 Mag 2018
So, there appears to be a disconnect of some sort with your description and what you want. Consider this:
>> x = randi(10,3,4)
x =
8 1 7 4
10 9 8 7
7 10 8 2
>> -diff(x)
ans =
-2 -8 -1 -3
3 -1 0 5
It certainly looks to me like the first row of the result is x_row1-x_row2 etc. Similarly for the second row of the result. So for the x shown above, what is the result that you want exactly if it isn't what I have shown?
"It is the same as my diff() matrix, except each value has "-" in front of it."
That would be exactly correct then. The only difference between these
row(i)-row(i+1)
row(i)-row(i-1)
will be the sign. So if all were positive in the first case, then in the second case all would be negative.
Ian Loveless
il 25 Mag 2018
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!