开发者

Summation of difference between matrix elements

I am in the process of building a function in MATLAB. As a part of it I have to calculate differences between elements in two matrices and sum them up.

Let me explain considering two matrices,

1 2 3 4 5 6
13 14 15 16 17 18

and

7 8 9 10 11 12
19 20 21 22 23 24

The calculations in the first row - only four elements in both matrices are considered at once (zero indicates padding):

    (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

I am unable to decide how to code this in MATLAB. How do I do i开发者_如何学Ct?

I use the following equation.

Summation of difference between matrix elements

Here i ranges from 1 to n(h), n(h), the number of distant pairs. It depends on the lag distance chosen. So if I choose a lag distance of 1, n(h) will be the number of elements - 1.

When I use a 7 X 7 window, considering the central value, n(h) = 4 - 1 = 3 which is the case here.


You may want to look at the circshfit() function:

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜