2015-05-21 35 views
0

我有焦慮1矢量V和焦慮矩陣M.我知道V等價於M列中的一列。我怎樣才能找到對應M的索引到V?我試過ismemberfind,但我想不出解決方案。如何找到內容等於矢量的矩陣中的列

+0

看看[這裏](http://stackoverflow.com/questions/6209904/find-given-row-in-a-matrix)一些替代品。你可以調整解決方案以適應你的需求:) –

+0

你是怎麼試過'ismember'的?你可以使用''rows''標誌和轉置... – Dan

+2

我看到你發佈Benoit的答案,但它只是行;我現在看到你的所有建議背後的邏輯,它的工作原理:) – user2680312

回答

3

ismember允許在nxd矩陣中尋找1x d向量。所有我們需要做的,使之成爲你的問題的工作調換陣列:

[~, columnIdx] = ismember(nByOneVector.', nByDMatrix.', 'rows'); 
+0

不能相信我沒有想到這一點。還是MATLAB新手,謝謝! – user2680312

+0

@ user2680312不要忘記標記爲正確的:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Dan

2

ismember的方法是使用bsxfun

find(all(bsxfun(@eq, V, M))) 

這裏bsxfun應用@eq操作(即==)到V和每列M。然後我們使用all來確保整列匹配,並最終將find從邏輯向量轉換爲列索引。