【问题标题】:Difference between adjacent elements - diagonal direction相邻元素之间的差异 - 对角线方向
【发布时间】:2012-07-27 01:33:28
【问题描述】:

我有一个矩阵,我 =

 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

【问题讨论】:

  • 您想知道如何在 matlab 或其他语言中执行此操作的答案吗?
  • 我想知道如何在 MATLAB 中做到这一点。

标签: matlab matrix diagonal


【解决方案1】:

您可以通过简单的索引来做到这一点(以下假设在您的示例中边缘周围的填充为零):

>> 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

【讨论】:

    【解决方案2】:

    我不太清楚如何在 MATLAB 中使用语法,但在伪代码中:

    元素i,j的对角线相邻元素的位置:

    元素列表 = {(i+1,j+1),(i+1,j-1),(i-1,j+1),(i+1,j-1)}

    基本上,对于每个元素位置,在两个矩阵中找到它的“元素列表”,然后减去。抱歉,我不能给你真正的代码。

    【讨论】:

      猜你喜欢
      • 2014-03-09
      • 2012-06-21
      • 1970-01-01
      • 2021-02-28
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多