具有不等维矩阵的 MATLAB diff 函数
MATLAB diff function with matrices of unequal dimensions
我阅读了 MATLAB diff.m 自述文件,仍然无法弄清楚以下内容:
a = [1 2 3]'
b = [3 2 1 4; 1 1 1 5; 5 5 5 6]
diff([a b]') =
2 -1 2
-1 0 0
-1 0 0
3 4 1
MATLAB 在这里应用什么规则?如果其中一个矩阵(即 a 或 b)是逻辑矩阵,MATLAB 会应用不同的规则吗?或者 a 和 b 都是逻辑矩阵?
a =
[1
2
3]
所以,
[a b] =
[ 1 3 2 1 4
2 1 1 1 5
3 5 5 5 6 ]
因此
[a b]' =
[ 1 2 3
3 1 5
2 1 5
1 1 5
4 5 6 ]
然后 diff 沿着大小不为 0 的第一个维度(即向下每一列)取差异。
这给出了结果
diff([a b]') =
[ 2 -1 2
-1 0 0
-1 0 0
3 4 1 ].
无论输入矩阵如何,MATLAB 都应用相同的规则。 运行 你的代码 line-by-line 在命令 window 中查看。
a
和b
是这样的:
>> a = [1 2 3]'
a =
1
2
3
>> b = [3 2 1 4; 1 1 1 5; 5 5 5 6]
b =
3 2 1 4
1 1 1 5
5 5 5 6
然后 [a b]'
:
>> [a b]'
ans =
1 2 3
3 1 5
2 1 5
1 1 5
4 5 6
现在对此应用 diff
规则如下:
[ row 2 - row 1 ]
[ row 3 - row 2 ]
[ row 4 - row 3 ]
[ row 5 - row 4 ]
你会得到
>> diff([a b]')
ans =
2 -1 2
-1 0 0
-1 0 0
3 4 1
我阅读了 MATLAB diff.m 自述文件,仍然无法弄清楚以下内容:
a = [1 2 3]'
b = [3 2 1 4; 1 1 1 5; 5 5 5 6]
diff([a b]') =
2 -1 2
-1 0 0
-1 0 0
3 4 1
MATLAB 在这里应用什么规则?如果其中一个矩阵(即 a 或 b)是逻辑矩阵,MATLAB 会应用不同的规则吗?或者 a 和 b 都是逻辑矩阵?
a =
[1
2
3]
所以,
[a b] =
[ 1 3 2 1 4
2 1 1 1 5
3 5 5 5 6 ]
因此
[a b]' =
[ 1 2 3
3 1 5
2 1 5
1 1 5
4 5 6 ]
然后 diff 沿着大小不为 0 的第一个维度(即向下每一列)取差异。 这给出了结果
diff([a b]') =
[ 2 -1 2
-1 0 0
-1 0 0
3 4 1 ].
无论输入矩阵如何,MATLAB 都应用相同的规则。 运行 你的代码 line-by-line 在命令 window 中查看。
a
和b
是这样的:
>> a = [1 2 3]'
a =
1
2
3
>> b = [3 2 1 4; 1 1 1 5; 5 5 5 6]
b =
3 2 1 4
1 1 1 5
5 5 5 6
然后 [a b]'
:
>> [a b]'
ans =
1 2 3
3 1 5
2 1 5
1 1 5
4 5 6
现在对此应用 diff
规则如下:
[ row 2 - row 1 ]
[ row 3 - row 2 ]
[ row 4 - row 3 ]
[ row 5 - row 4 ]
你会得到
>> diff([a b]')
ans =
2 -1 2
-1 0 0
-1 0 0
3 4 1