我阅读了MATLABDiff.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 1MATLAB在这里应用什么规则?如果其中一个矩阵(即a或b)是逻辑矩阵,那么MATLAB应用不同的规则吗?还是a和b都是逻辑矩阵?
发布于 2022-05-11 23:38:52
不管输入矩阵如何,MATLAB都应用相同的规则。在命令窗口中逐行运行代码并查看。
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发布于 2022-05-11 23:36:47
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 ].https://stackoverflow.com/questions/72207435
复制相似问题