What is the problem with my function to compute the cosine similarity of two images?
2 ビュー (過去 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!