我有一個矩陣,I =差異 - 對角線方向
5 4 3
9 8 6
6 3 4
如何可以計算在對角方向相鄰的元件之間的差異。我想這些輸出(對於第一個和最後的行和列,我不介意填充):
5 4 3
5 5 6
2 -3 4
和
5 4 3
9 3 2
6 -6 -4
我有一個矩陣,I =差異 - 對角線方向
5 4 3
9 8 6
6 3 4
如何可以計算在對角方向相鄰的元件之間的差異。我想這些輸出(對於第一個和最後的行和列,我不介意填充):
5 4 3
5 5 6
2 -3 4
和
5 4 3
9 3 2
6 -6 -4
您可以通過簡單的索引做到這一點(以下假設周圍的邊緣補零如在你的例子):
>> diagDiffs = I;
>> diagDiffs(2:end,2:end) = I(2:end,2:end)-I(1:end-1,1:end-1)
diagDiffs =
5 4 3
9 3 2
6 -6 -4
>> antidiagDiffs = I;
>> antidiagDiffs(2:end,1:end-1) = I(2:end,1:end-1)-I(1:end-1,2:end)
antidiagDiffs =
5 4 3
5 5 6
-2 -3 4
我不太清楚如何去做語法在MATLAB,但在psudocode:
爲元件i,j
對角線相鄰元件在位置:元件
清單= {(i+1,j+1),(i+1,j-1),(i-1,j+1),(i+1,j-1)}
。
基本上,對於每個元素位置,在兩個矩陣中找到它的「元素列表」並進行相減。對不起,我不能給你真正的代碼。
你想如何做到這一點在MATLAB或其他語言的答案嗎? – soandos 2011-05-06 05:39:59
我想要如何在MATLAB中做到這一點的答案。 – 2011-05-06 06:18:33