please help>>>how to fix (Matrix dimensions must agree.) error in matlab?
Mostra commenti meno recenti
how to fix (Matrix dimensions must agree.) error in matlab?
my code is:
a=imread('lena.bmp');
I=im2double(a);
H=fspecial('log',5);
%convolution
[r,c]=size(I);
for y=2:r-1
for x=2 :c-1
windowI= I(y:y+3 , x: x+3);
windowH= H(y:y+1 , x: x+1);
IH= sum(sum(windowI .* windowH));
end
end
figure(2);
imshow (IH) ;
i think this line: IH= sum(sum(windowI .* windowH)); causes the error but how to fix it?
Risposte (3)
Walter Roberson
il 14 Nov 2013
0 voti
Why are you expecting that a matrix that is 4 x 4 can be multiplied by a matrix that is 2 x 2 ?
4 Commenti
Walter Roberson
il 14 Nov 2013
What is the intent? To tile the 2 x 2 into a 4 x 4 and then multiply?
Walter Roberson
il 15 Nov 2013
Perhaps you should be using conv2() ?
Youssef Khmou
il 15 Nov 2013
Modificato: Youssef Khmou
il 15 Nov 2013
hi Asma,
the number of columns of WindowI must be the same as the number of lines in WindowH, take the two blocks with same dimensions or try :
a=imread('circuit.tif');
I=im2double(a);
H=fspecial('log',5);
[r,c]=size(I);
a=1;b=1;
for x=1:r-5 % ver
for y=1:c-4
windowI= I(x:x+4 , y: y+4);
%windowH= H(x:x+3 , y: y+1);
IH(x,y)= sum(sum(windowI .* H)); % element wise or matrix product????????
end
end
figure(2); imshow (IH)
2 Commenti
Asma
il 15 Nov 2013
Asma
il 15 Nov 2013
0 voti
1 Commento
Youssef Khmou
il 15 Nov 2013
the size of windowI depends on H, as you fspecal is 5x5 then a window must have the size 5*m , for arbitrary m, try the example i posted
Categorie
Scopri di più su Resizing and Reshaping Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!