Я знаю, как найти индексы с отрицательным значением из матрицы.
matrix(matrix<0) = %something should be done;
Но не знаю, как заменить их значения на значение ближайшего индекса, которое оказывается положительным.
Ближайший индекс здесь должен находиться в той же строке, где проложен наблюдаемый индекс.
Если в строке нет индекса с положительным значением , 0 следует интерполировать на каждый индекс в этой строке.
Если в одной и той же строке более одного индекса, ближайшего к наблюдаемому индексу, выберите правильный.
Я имею дело с одиночной матрицей 1003x1170. Поэтому было бы лучше, если бы решение не доставляло слишком много накладных расходов.
Например,
[-255 4 6;
-5 -4 5;
-400 3 6;
-6 -7 -8;
3 -5 4]
Становится
[4 4 6;
5 5 5;
3 3 6;
0 0 0;
3 4 4]