gpt4 book ai didi

excel - 计算数组中连续个数(1)的数量

转载 作者:行者123 更新时间:2023-12-04 21:09:46 24 4
gpt4 key购买 nike

我是使用 excel vba 的新手。想知道一种聪明的方法来计算零和一的数组(或 Excel 列)中连续 1 的数量。

考虑以下数组:

A = [0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0];

我想得到以下输出:
Result = [4 4 1 5 5];

我知道在 matlab 中使用 RunLength 函数很容易实现,但在 vba 中我找不到类似的函数。

我尝试调整以下 matlab 代码,但由于正确使用 find 函数而无法达到我想要的效果。
clc
clear all
A = [0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0];
B = A(2:end);
C = A(1:end-1) - B;
D = find(C~=0);
Result = [D(1) D(2:end) - D(1:end-1) length(A)-D(end)]

非常感谢您的帮助!

最佳答案

Sub test()

a = Array(0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0)
a = Filter(Split(Join(a, ""), 0), 1)
For i = 0 To UBound(a)
a(i) = Len(a(i))
Next
Debug.Print Join(a)

End Sub

关于excel - 计算数组中连续个数(1)的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61957201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com