2013-05-02 179 views
0

我有一個矩陣和一個向量,我想比較矩陣和向量的每一列 - 我想得到的是等於向量的列的數量。 實施例:Octave - 比較矩陣的列與矢量

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

vector v= 1 0 1 

結果應該是2(因爲M的第二列是等於向量v)

如何做呢?

回答

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 
+0

之和(M == V')給我的nonconformat參數 – user1926550 2013-05-02 12:23:28

+0

@ user1926550錯誤:作品在這裏很好。請發佈實際的錯誤消息。 – 2013-05-02 13:05:51

+0

總和(M = = V')我收到後: 錯誤:mx_el_eq:nonconformat參數(OP1爲3×4,OP2是3X1) 錯誤:評估參數列表元素數1 錯誤:評估參數列表元素數1 – user1926550 2013-05-02 14:47:39

1

使用廣播(bsxfun),向向量與每個矩陣中的行的。然後find哪一行是all真正

find (all (bsxfun (@eq, m, v')))