Difference

조회 수: 2 (최근 30일)
Lizan
Lizan 2011년 7월 23일
I have vector A =
Columns 1 through 5
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Columns 6 through 10
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Columns 11 through 15
1.4602 1.4606 1.4609 1.4612 1.4615
0 0 0 0 0
0 0 0 0 0
Columns 16 through 20
1.4619 1.4622 1.4625 1.4629 1.4632
0 0 0 0 0
0 0 0 0 0
Column 21
1.4635
0
0
Why does
diff(A) =
ans =
Columns 1 through 5
0 0 0 0 0
0 0 0 0 0
Columns 6 through 10
0 0 0 0 0
0 0 0 0 0
Columns 11 through 15
-1.4602 -1.4606 -1.4609 -1.4612 -1.4615
0 0 0 0 0
Columns 16 through 20
-1.4619 -1.4622 -1.4625 -1.4629 -1.4632
0 0 0 0 0
Column 21
-1.4635
0
diff(A(1,:)) =
ans =
Columns 1 through 5
0 0 0 0 0
Columns 6 through 10
0 0 0 0 1.4602
Columns 11 through 15
0.0003 0.0003 0.0003 0.0003 0.0003
Columns 16 through 20
0.0003 0.0003 0.0003 0.0003 0.0003
give different result?
  댓글 수: 4
Andrei Bobrov
Andrei Bobrov 2011년 7월 23일
diff(A,[],1)) % difference row-wise
Daniel Shub
Daniel Shub 2011년 7월 23일
of course it did because you are not reading the documentation of diff. The [] is important. The first argument to diff is the matrix, the second is the order of the difference. You want this to be 1, which is the default so [] works or you could use 1. The third argument is the dimension over which to take the difference. Since you want the difference across rows, you want 2. Grab a pencil and paper and see which one you want.

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

채택된 답변

Daniel Shub
Daniel Shub 2011년 7월 23일
If I remember correctly, diff works across the first non-singleton dimension. So diff(A) works across columns and diff(A(1, :)) works across rows.
x = [1,2,3; 4,5,6];
diff(x, [], 1)
ans =
3 3 3
diff(x, [], 2)
ans =
1 1
1 1

추가 답변 (1개)

Lizan
Lizan 2011년 7월 23일
I want the difference per row, row one represents one solution and the second row represents another type of solution.
Which of the above will give me the correct solution for my case?

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by