And*_*eas 1 matlab vectorization octave
给定一个矩阵A,我需要找到对应于值1和2的索引.我可以按如下顺序执行:
>> B
B =
1 2 3
4 1 6
7 8 9
4 5 1
>> find(B==1)
ans =
1
6
12
>> find(B==2)
ans =
5
Run Code Online (Sandbox Code Playgroud)
但是如果我在循环中进行这种操作,Matlab将只使用我的处理器的一个核心.我如何矢量化它,以便从中获取矩阵find?我想要这个结果:
>> my_find( B, [1 2] )
ans =
1 5
6 0
12 0
Run Code Online (Sandbox Code Playgroud)
(或其他一些填充)
我怎么能得到这个?
只是不要使用 find
B==1
ans =
1 0 0
0 1 0
0 0 0
0 0 1
B==2
ans =
0 1 0
0 0 0
0 0 0
0 0 0
Run Code Online (Sandbox Code Playgroud)
然后添加或逻辑或那些在一起.
即
(B==1) + (B==2)
ans =
1 1 0
0 1 0
0 0 0
0 0 1
Run Code Online (Sandbox Code Playgroud)
要么
(B==1) | (B==2)
ans =
1 1 0
0 1 0
0 0 0
0 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |