两向量余弦相似度代码 matlab
时间: 2023-11-28 17:45:06 浏览: 120
以下是计算两个向量余弦相似度的MATLAB代码示例:
```matlab
function sim = cosine_similarity(x, y)
% 计算两个向量x和y的余弦相似度
% 输入:x和y为行向量
% 输出:sim为余弦相似度
% 计算向量x和y的内积
xy = x * y';
% 计算向量x和y的模长
x_norm = norm(x);
y_norm = norm(y);
% 计算余弦相似度
sim = xy / (x_norm * y_norm);
end
```
使用示例:
```matlab
x = [1, 2, 3];
y = [4, 5, 6];
sim = cosine_similarity(x, y);
disp(sim); % 输出:0.9746
```
相关问题
余弦相似度代码 matlab
在Matlab中,可以使用以下代码计算两个向量的余弦相似度:
```matlab
cosine_similarity = dot(vector1, vector2) / (norm(vector1) * norm(vector2));
```
其中,`vector1`和`vector2`是需要比较的两个向量。`dot`函数计算两个向量的点积,`norm`函数计算向量的范数(即向量的长度)。最后,将点积除以两个向量的长度乘积即可得到余弦相似度。
matlab 余弦相似度代码
在MATLAB中,计算两个向量之间的余弦相似度是一个常见的任务。余弦相似度是通过计算两个向量的点积(内积)除以它们各自长度的乘积得到的,结果范围在-1到1之间,其中1表示完全相同,-1表示完全不同,0表示不相关。
以下是一个简单的MATLAB函数示例,用于计算两个向量的余弦相似度:
```matlab
function cosine_similarity = cosine_similarity(vec1, vec2)
% 计算两个向量的点积
dot_product = dot(vec1, vec2);
% 计算向量的欧几里得范数
norm_vec1 = norm(vec1);
norm_vec2 = norm(vec2);
% 防止除以零的情况
if norm_vec1 == 0 || norm_vec2 == 0
cosine_similarity = 0; % 如果有一个向量长度为0,则相似度为0
else
% 计算余弦相似度
cosine_similarity = dot_product / (norm_vec1 * norm_vec2);
end
end
```
使用这个函数,你可以像这样计算两个向量 `v1` 和 `v2` 的余弦相似度:
```matlab
v1 = [1 2 3];
v2 = [4 5 6];
similarity = cosine_similarity(v1, v2);
```