Matlab,查询向量 q 和文档向量 aj 之间的角度 θj 的余弦

Matlab, cosines of the angles θj between a query vector q and the document vectors aj

我试图找到查询向量 q 和文档向量 aj 之间的角度 θj 的余弦,其中 j 指的是列号。

这是公式,我正在尝试用 matlab 编写。 到目前为止,这是我对代码的尝试:

    cosval = (R(:,i)'*(v(Q(:,i))'))./(norm(v)*norm(R(:,i)));

而我 运行 关注的问题:

下标索引必须是正实数或逻辑数。

这是我尝试使用的两个矩阵:矩阵之间用线隔开,抱歉我的绘画技巧很差。我遇到的问题可能是因为我的矩阵不包含实整数,或者这只是 matlab 显示矩阵的方式,问题出在我的计算行上?

你在哪里定义i?图中的矩阵是 RQ 吗?我们需要更多信息才能完整回答。

我能看到的最可能的问题是,您似乎正在使用 Q 中的值作为 v 的下标索引,如果这些值不是整数,这就没有意义:您可以'向量中有第 5.774 个条目。按照发布的公式并假设 Q 是一个矩阵,它看起来更有可能你想写 R(:,i)'*(Q'*v),虽然我不知道大写 A 下标在你的公式中意味着什么。

或者,如果您没有分配变量 i,可能是 matlab 将其解释为虚数单位。任何一个错误都会导致对索引需要 'real positive integers'.

的抱怨