Обновление определенного столбца массива - PullRequest
1 голос
/ 07 мая 2019

Следующий код выполняет то, что мне нужно, но поскольку в будущих кодах мне обязательно придется выполнить ту же задачу, я хотел бы знать, каков наилучший способ достижения результата:

p_last = fill(NaN, (n,periods-1)) 
p_first = ones(n) * 0.5
p = hcat(p_first,p_last)

1 Ответ

2 голосов
/ 07 мая 2019

Есть много способов, таких как:

p = fill(NaN, n, periods)
p[:, 1] .= 0.5

или

p = [j == 1 ? 0.5 : NaN for i in 1:n, j in 1:periods]

или аналогично:

p = [ifelse(j == 1, 0.5, NaN) for i in 1:n, j in 1:periods]

Все они имеют преимущество, заключающееся в том, что они выделяют толькоодна матрицаПервый из них немного быстрее, но требует двух операторов.

...