[問題] 不用if來分類的方法

作者: boa918ass (保羅太陽)   2019-05-02 14:25:36
各位版上大腿們好
我的情況是有三組數值為0,1的矩陣
例如:
A = [1 0 1 0 1 1 0];
B = [0 1 0 1 0 0 1];
O = [1 0 0 1 1 0 0];
我想要將以下四種情況
A=1 , B=1
A=1 , B=0
A=0 , B=1
A=0 , B=0
對應到的O矩陣資料存下來
目前使用的方法是直接用if else來分
但這樣的寫法我電腦跑起來時間真的耗費太久
因為我每組數據有65536筆...
然後有60組左右
苦思想不太到更好的方式
所以希望上來能得到各位前輩們的指點
謝謝!
作者: sin55688 (單手挑藏獒)   2019-05-02 14:29:00
find( (A==1).*(B==1) )沒寫很請處,把出來的index餵給O就好。O(find(...))
作者: sunev (Veritas)   2019-05-02 14:40:00
用 & 語義比較清楚
作者: sin55688 (單手挑藏獒)   2019-05-02 14:58:00
同意。 A==1 & B==1 這樣清楚也快
作者: profyang (prof)   2019-05-02 21:07:00
直接 O(A==1 & B==1)就好 記得之前寫find時matlab都自動建議我不用用find
作者: sunev (Veritas)   2019-05-02 21:19:00
最好是直接把A和B存成logical,這樣就可以O(A&B) O(A&~B)

Links booklink

Contact Us: admin [ a t ] ucptt.com