用 Amibroker 中的最后一个非零值替换数组的零

Replace zeros of array with last non-zero value in Amibroker

我有一个看起来像这样的数组;

arr_with_zeros = [1 0 0 2 0 0 3 0 0 6 0 0 8 0 0]

我想用数组中最后一个非零值替换零。新数组应如下所示;

arr_non_zeros = [1 1 1 2 2 2 3 3 3 6 6 6 8 8 8]

这是我写的代码。

arr_non_zeros = ValueWhen(True, arr_with_zeros, n=1);

它不起作用。 arr_non_zeros 与 arr_with_zeros 的内容相同。有人可以帮忙吗?谢谢。

我正在使用 Amibroker ver6.30.5

看看IIF

arr_new = iif(arr_non_zeros == 0, ref(arr_non_zeros,-1), arr_non_zeros);