Matlab中find函数的使用
一.问题来源
看到了
min_score_pos = find(A0_scores==min(A0_scores), 1);
[r,c] = find(X,k),返回X中第k个非零元素的行列位置。
二.试验
K>> a = [1 4 5 69 8 3 23]
a =
1 4 5 69 8 3 23
K>> a == min(a)
ans =
1 0 0 0 0 0 0
K>> find(ans,1)
ans =
1
试验发现,返回的是a中最小元素所在的位置。
三、求非0元素的个数
a = [1 2 0 3 0];
find(a~=0)得到 1 2 4,那么sum(find(a~=0))得到7
a~=0得到1 1 0 1 0
那么sum(a~=0)得到3 这个是对的
还可以这样[~,n] = size(find(a~=0));或者这样的话不能直接取第二个返回值,那么可以length(find(a~=0))。
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.