Matrix Row size comparison with Vector item?
我有矩阵 [m x n] 和向量 [m],我想将每一行与相应的向量数进行比较,有没有办法做这个向量化的方法?
- "比较"是什么意思?检查相应的向量数是否等于矩阵中的条目?或大于、小于或其他比较?
使用 bsxfun:
1 2 3 4 5 6 7 8 9 10 11 12
| % example data
M = rand(5, 3);
V = rand(5, 1);
% for equality (==) :
bsxfun (@eq, V, M );
% for greater-than (>) :
bsxfun (@gt, V, M );
% for greater-than-or-equals (>=) :
bsxfun (@ge, V, M ); |
等。 help bsxfun 中列出了可用功能的列表。
首先,你最好注意你的录取率:)
您可以尝试使用 intersect 函数来比较矩阵中是否有任何向量成员。
如果这对您有帮助,请将这些成员保存到新向量中。
例如
1 2 3
| x = [1, 2, 3, 4, 5, ]
y = [5, 6, 2]
z = intersect(x,y ) |
将导致
改进的答案是:-
其中 ix, iy 为您提供 y 元素在 X 中存在的行索引。
- 假设你有向量 v = [10 ; 1;3 4;5],当你做 v == 10 例如你得到 ans = [1;0;0;0];但是在这里我有矩阵,我想将每一行与同一概念中的列项目进行比较
-
抱歉回来晚了。我很高兴你得到了答案。 :)