我正在用MATLAB构建一个函数。作为其中的一部分,我必须计算两个矩阵中元素之间的差异,并将它们相加。
让我考虑两个矩阵来解释,
1 2 3 4 5 6
13 14 15 16 17 18
和
7 8 9 10 11 12
19 20 21 22 23 24
第一行中的计算-一次只考虑两个矩阵中的四个元素(0表示填充):
(1-8)+(2-9)+(3-10)+(4-11): This replaces 1 in initial matrix.
(2-9)+(3-10)+(4-11)+(5-12): This replaces 2 in initial matrix.
(3-10)+(4-11)+(5-12)+(6-0): This replaces 3 in initial matrix.
(4-11)+(5-12)+(6-0)+(0-0): This replaces 4 in initial matrix. And so on
我无法决定如何在MATLAB中对其进行编码。我该怎么做呢?
我使用下面的方程式。
这里,i
的范围从1
到n(h)
,n(h)
,即远距离对的数量。这取决于所选的滞后距离。因此,如果我选择滞后距离1
,则n(h)
将为the number of elements - 1
。
当我使用一个7 x 7的窗口时,考虑到中心值,n(h) =4-1=3,这里就是这种情况。
发布于 2011-05-08 16:44:10
您可能需要查看circshfit()函数:
a = [1 2 3 4; 9 10 11 12];
b = [5 6 7 8; 12 14 15 16];
for k = 1:3
b = circshift(b, [0 -1]);
b(:, end) = 0;
diff = sum(a - b, 2)
end
https://stackoverflow.com/questions/5926347
复制相似问题