MATLAB 求两行数据需同时满足条件的持续时间日数

A=[1 4 5 1 1 2 3 4 6 7 1 7 8 1 9 8 7 6 2 3 5 5;3 4 9 8 7 1 2 6 5 4 3 8 0 9 5 4 4 3 2 6 6 8];
请问,如何利用matlab语言求第一行大于等于2且第二行大于等于3的连续天数?
结果为[2 3 1 4 3];

这个就是求最大连续子序列的思路,具体看我之前问题的回答

该回答引用GPTᴼᴾᴱᴺᴬᴵ
可以使用循环和逻辑索引来实现。具体思路如下:

  1. 对A中的每一列进行逻辑索引,得到符合条件的元素的位置。

  2. 对这些位置进行循环,计算符合条件的连续天数。

代码实现如下:

A = [1 4 5 1 1 2 3 4 6 7 1 7 8 1 9 8 7 6 2 3 5 5;
     3 4 9 8 7 1 2 6 5 4 3 8 0 9 5 4 4 3 2 6 6 8];

% 逻辑索引,得到符合条件的元素位置
idx = A(1,:)>=2 & A(2,:)>=3;

% 初始化变量
count = 0;
answ = [];

% 计算符合条件的连续天数
for ii = find(idx)
    count = count + 1;
    if ii == length(idx) || ~idx(ii+1)
        answ(end+1) = count;
        count = 0;
    end
end

disp(answ)


输出结果为:2 3 1 4 3,符合预期。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^