参见张志涌精通matlab
>> A=randn(3,4)
A =
-0.5883
0.1139
-0.0956
-1.3362
2.1832
1.0668
-0.8323
0.7143
-0.1364
0.0593
0.2944
1.6236
以逻辑数组表达满足条件的元素:
>>L=(A>0)
L =
0
1
0
0
1
1
0
1
0
1
1
1
%寻找符合条件元素位置(返回为一列,并以单下标形式表示位置,故转置为一行)
>>s=(find(L))'或者
>>
s=(find(A>0))'
s =
2
4
5
6
9
11 12
可以对满足条件的元素集体赋值
>> A(s)=0
A =
-0.5883
0
-0.0956
-1.3362
0
0
-0.8323
0
-0.1364
0
0
0
如果要以双下标形式返回符合条件的元素位置:
>> [ii,jj]=find(A==0);
>>
disp(ii'),disp(jj')