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

James Tursa
James Tursa 2018년 5월 23일
No. diff() does row{i}-row{i-1} just like you apparently want.
The diff help states that for a matrix it returns
[X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
which seems to match what you asked for.
Ian Loveless
Ian Loveless 2018년 5월 23일
Then I mistyped. Is there a way I can do row{i}-row{i+1}?

댓글을 달려면 로그인하십시오.

답변 (1개)

James Tursa
James Tursa 2018년 5월 23일
편집: James Tursa 2018년 5월 23일

0 개 추천

Just negate the usual diff() result. E.g.,
x = your matrix
result = -diff(x);

댓글 수: 6

Ian Loveless
Ian Loveless 2018년 5월 23일
That just gives me the negative of diff(), it does not subtract in the opposite direction.
James Tursa
James Tursa 2018년 5월 23일
Really? Have you tried it?
Ian Loveless
Ian Loveless 2018년 5월 23일
Yes I did. It is the same as my diff() matrix, except each value has "-" in front of it.
James Tursa
James Tursa 2018년 5월 23일
편집: James Tursa 2018년 5월 23일
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?
Stephen23
Stephen23 2018년 5월 24일
편집: Stephen23 2018년 5월 24일
"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
Ian Loveless 2018년 5월 25일
You are all correct, I apologize for my ignorance. I was looking at spacings instead of differences. Thank you for your help and patience.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

릴리스

R2018a

태그

질문:

2018년 5월 23일

댓글:

2018년 5월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by