MATLAB:查找逻辑数组中第一个'1'的条目号

Ale*_*ols 1 arrays matlab loops

我使用以下代码创建了1和0的逻辑数组:

nWindow = 10;
LowerTotInitial = std(LowerTot(1:nWindow));
UpperTotInitial = std(UpperTot(1:nWindow));
flag = 0;
flagArray = zeros(length(LowerTot), 1);
for n = 1 : nData0 - nWindow
    for k = 0 : nWindow - 1 
         if LowerTot(n + k) < 0.1*LowerTotInitial || UpperTot(n + k) < 0.1*UpperTotInitial
             flag = 1;
             flagArray(n) = 1;
         else
             flag = 0;
         end
    end 
end
Run Code Online (Sandbox Code Playgroud)

这将返回flagArray,一个0和1的数组.我试图找到数组中第一个1的索引.即.1 = flagArray(index).我很困惑,最好的方法是什么!

b3.*_*b3. 6

你所谓的条目号在MATLAB中被称为索引.要查找数组中第一个匹配元素的索引,可以使用FIND函数:

>> x = [0 0 1 0 1 0];
>> find(x, 1, 'first')

ans =

     3