【发布时间】:2014-10-18 18:01:33
【问题描述】:
我来了
A = [1, 2, 3]
B = [1, 0, 0, 1, 0, 1]
我想创建一个矩阵
C = [1, 0, 0, 2, 0, 3]
可以看到B 就像一个掩码,B 的个数等于A 的元素个数。我想要的是将A 中的元素排列到B 为1 的地方。
任何没有循环的方法?
【问题讨论】:
我来了
A = [1, 2, 3]
B = [1, 0, 0, 1, 0, 1]
我想创建一个矩阵
C = [1, 0, 0, 2, 0, 3]
可以看到B 就像一个掩码,B 的个数等于A 的元素个数。我想要的是将A 中的元素排列到B 为1 的地方。
任何没有循环的方法?
【问题讨论】:
【讨论】:
C(find(B)) = A;,但结果相同。
logical 可能比find 快
== 1 比 logical() 稍快。但是,它们有不同的结果。更公平的比较是与 != 0 相比,后者仍然更快。
B = [1, 0, 0, 1, 0, 1],所以B==1 让我印象深刻,但对于一般情况,您对~=0 的看法是正确的。我能够对这些逻辑阵列问题执行一些相关测试,并且我认为也可以确认您的快速测试。这些张贴在这里 - stackoverflow.com/questions/25339215/…