Суммирование разницы между матричными элементами - PullRequest
2 голосов
/ 08 мая 2011

Я нахожусь в процессе создания функции в 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

Расчеты в первой строке - одновременно рассматриваются только четыре элемента в обеих матрицах (ноль означает заполнение):

    (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. Как мне это сделать?

Я использую следующее уравнение.

Equation

Здесь i колеблется от 1 до n(h), n(h), количество удаленных пар. Это зависит от выбранного расстояния отставания. Поэтому, если я выберу расстояние запаздывания 1, n(h) будет the number of elements - 1.

Когда я использую окно 7 X 7, учитывая центральное значение, n (h) = 4 - 1 = 3, как здесь.

1 Ответ

1 голос
/ 08 мая 2011

Возможно, вы захотите взглянуть на функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...