Заменить нули массива последним ненулевым значением в Amibroker - PullRequest
0 голосов
/ 21 мая 2019

У меня есть массив, который выглядит следующим образом;

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

1 Ответ

1 голос
/ 27 мая 2019

Посмотрите на IIF

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