MATLAB:查找第一个“1”的条目号在逻辑数组中
我使用以下代码创建了一个由 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 的索引。 IE。 1 = flagArray(索引)
。我很困惑什么是实现这一目标的最佳方法!
I have created a logical array of 1's and 0's using the following code:
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
This returns flagArray, an array of 0's and 1's. I am trying to find the index of the first 1 in the array. ie. 1 = flagArray(index)
. I am confused as to what is the best way to accomplish this!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您所说的条目编号在 MATLAB 语言中称为索引。要查找数组中第一个匹配元素的索引,可以使用 FIND 函数:
What you call an entry number is referred to as an index in MATLAB-speak. To find the index of the first matching element in an array you can use the FIND function:
试试这个
ind = find(flagArray, k, 'first')
k =1
阅读此 Matlab 文档 - 查找
Try this
ind = find(flagArray, k, 'first')
with k =1
Read this Matlab Docs - find