0

我有一个矩阵和一个向量,我想将矩阵的每一列与向量进行比较——我想要得到的是等于向量的列数。例子:

matrix M=1 1 0 1
         1 0 0 0
         0 1 1 0

vector v= 1 0 1

结果应该是 2(因为 M 的第二列等于向量 v)

我怎么做?

4

2 回答 2

1
octave> M = [1 1 0 1; 1 0 0 0; 0 1 1 0];
octave> v = [1 0 1];
octave> sum(M == repmat(v', 1, 4))
ans =

   1   3   2   2

octave> sum(M == repmat(v', 1, 4)) == size(M, 1)
ans =

   0   1   0   0

octave> find(sum(M == repmat(v', 1, 4)) == size(M, 1))
ans =  2
于 2013-05-02T11:58:32.283 回答
1

使用广播 ( bsxfun) 将向量与矩阵中的每一行进行比较。那么find哪一行是all真的

find (all (bsxfun (@eq, m, v')))
于 2013-05-03T14:22:56.270 回答