[问题] 不用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