What is the problem with my function to compute the cosine similarity of two images?
조회 수: 3 (최근 30일)
이전 댓글 표시
I am using a script to compute the cosine similarity of two images.
I first convert the images to vectors:
Img1 = imread('test1.jpg')
Img2 = imread('test2.jpg')
ImgVector1 = Img1(:)
ImgVector2 = Img2(:)
I then use the script to compute the cosine similarity between the vectors:
cossimnew(ImgVector1,ImgVector2)
That function is as follows:
function s=cossimnew(actual,estimate)
[m,n]=size(actual);
if n==1
s=((estimate'*actual)/(norm(estimate)*norm(actual)))';
else
for i=1:n,
x=norm(estimate(:,i))*norm(actual(:,i));
if x ~= 0
s(i)=(estimate(:,i)'*actual(:,i))/x;
else
s(i)=NaN;
end
end
end
s=s';
However I have been getting the following error:
Error using *
MTIMES is not fully supported for integer classes. At least one input must be
scalar.
To compute elementwise TIMES, use TIMES (.*) instead.
Error in cossimnew (line 8)
Can anyone point me in the right direction?
Thanks so much.
댓글 수: 0
채택된 답변
추가 답변 (1개)
Spencer Chen
2017년 4월 4일
Please read Matlab documentation on the differences between the "*" and ".*" notations. Also please read more about vector operations and vectorizing operations in Matlab.
댓글 수: 0
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!