两向量余弦相似度代码 matlab
时间: 2023-11-28 16:45:06 浏览: 150
以下是计算两个向量余弦相似度的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 代码示例:
```matlab
% 生成两行频域振动信号
signal1 = fft(rand(1,100));
signal2 = fft(rand(1,100));
% 计算余弦相似度
cosine_similarity = dot(signal1, signal2)/(norm(signal1)*norm(signal2));
disp(['余弦相似度为:' num2str(cosine_similarity)]);
```
这段代码首先生成了两行长度为 100 的随机信号,然后使用 `fft` 函数将其转换为频域信号。接着,利用余弦相似度的计算公式,即两个向量的点积除以它们的模长之积,计算了这两个频域信号的余弦相似度。最后,使用 `disp` 函数输出结果。
阅读全文