Это продолжение из моего комментария и теперь понимание того, что вы действительно после. То, что вы намеревались сделать, это выполнить умножение по элементам I
и w
, затем sum все элементы в матрице. То, что я подразумеваю под каждым элементом, состоит в том, что соответствующие значения в одной матрице умножаются на соответствующие позиции в другой матрице, и это конечный результат. Таким образом, вам просто нужно изменить оператора *
на .*
, а затем выполнить суммирование по всей этой матрице. Другими словами, это сделать:
[e,f] = size(outImg);
m = zeros(e,f);
w = [1 2 4 8; 16 32 64 128; 256 512 1024 2048; 4096 8192 16384 32768];
for i = 1:e-3
for j = 1:f-3
I = double(outImg((i:i+3),(j:j+3)));
m(i,j) = sum(sum(I .* w)); %// Change
end
end
Обратите внимание на вложенные sum
вызовы. Это связано с тем, что при суммировании по матрице по умолчанию она суммирует по всем строкам для каждого столбца и создает вектор с одной строкой, содержащий этот результат. Если вы хотите суммировать каждое значение в матрице, вы должны вызывать sum
еще раз, чтобы суммировать по вектору строки, чтобы вычислить общую сумму матрицы. Теперь это должно равняться одному значению, и вы больше не должны получать ошибку несоответствия размеров.
Удачи вам!
Это потому, что 'I' является матрицей 4 x 4 и' w' также является матрицей 4 x 4. Вы пытаетесь сжать умножение двух матриц 4 x 4 ... которое также является матрицей 4 x 4 в одно место в 'm'. Недостаточно мест на левой стороне вашего выражения для правой стороны. Что именно вы пытаетесь достичь здесь? «Матричное умножение между изображением и« w' * »не имеет для меня никакого смысла. – rayryeng
Полезный совет: нажмите ctrl + a, чтобы выбрать весь код в окне редактора, а затем нажмите ctrl + i, чтобы автоматически отменить свой код. Это облегчит чтение. – David
Здесь я должен вычислить значение индекса, где у меня есть изображение, и я сделал 4x4 перекрывающиеся блоки изображения, а затем я сделал массив из 2ᵏ значений (где 2ᵏ = 0..2^16), и мне нужно закодировать index as = Σ 〖2ᵏSͪ〗, где S^h = Изображение 4x4 блок – STripathy