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))。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM