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

时间:2011-08-02 21:08:10

标签: 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

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

2 个答案:

答案 0 :(得分:6)

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

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

ans =

     3

答案 1 :(得分:2)

试试这个ind = find(flagArray, k, 'first') k = 1

阅读此Matlab Docs - find