我有這樣的載體:八度:比較兩個向量
t = 1: 10 % t = 1 2 3 ..10
A= [3 4 5] % a column vector
如果鍵入:
(3 == t)
我得到的結果是:
0 0 1 0 0 0 0 0 0 0 % it means: 1 at location equals, and 0 at others
我想爲矢量做到這一點a,這意味着它將採用向量A中的每個元素並比較並返回另一個向量。所以在這種情況下,結果將是一個3×10的矩陣。
但是這行會導致錯誤:A==t
。
當然,我可以通過使用for循環來做到這一點,但我想要矢量化這個操作。
-1:[Octave broadcast](http://www.gnu.org/software/octave/doc/interpreter/Broadcasting.html#Broadcasting)僅僅是['bsxfun'](http:/ /octave.sourceforge.net/octave/function/bsxfun.html)。結果肯定不是'ismember',所以兩者比較沒有意義。 –
我很抱歉,但如果你打算閱讀它,你會發現它是與bsxfun產生相同結果的任何(A'== t)。如果你願意,你可以試試。至於bsxfun,除了你提到的任何關於bsxfun的內容外,沒有人會提到任何有關bsxfun的內容,所以我真的不認爲這一點的相關性......但即使有相關性,代碼的可讀性也是相關的,並且如果廣播八度更容易閱讀,它更好。而且,無論出於什麼原因,我發現廣播速度稍微快一點......在B = bsxfun(@ eq,t,A')上循環10000次需要比循環10000次多10%的時間B = A'= = T。 –
你能舉一個例子說明給出不同的結果嗎?因爲我看不到它會這樣做的任何情況。如果它確實給出了不同的結果,它是成員還是我的解決方案給出了正確的結果? –