我閱讀了 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 都是邏輯矩陣?
uj5u.com熱心網友回復:
無論輸入矩陣如何,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
uj5u.com熱心網友回復:
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://www.uj5u.com/qita/475406.html
上一篇:在與二維變數鏈接的繪圖上刷資料
下一篇:在MATLAB中與N個矩陣相交
