Julia,有条件地替换单个元素
Julia, conditionally substitution of individual elements
我之前问过一个关于这个的问题,但可能使问题过于复杂了。给定一个数组:
a = [3,4,3,6,3];
我需要什么代码来执行以下操作:
如果 a == 3
的单个元素
然后以概率 (p=0.67)
,将值更改为 9
否则将元素保留为 3
谢谢。 J
我想这将是实现您想要的最短途径:
a[findall(x -> x==3 && rand()<=0.67, a)] .= 9
更长但可能更清晰的循环版本
for i in findall(a .== 3)
rand() ≤ 0.67 && (a[i] = 9)
end
或
for i in findall(a .== 3)
rand() ≤ 0.67 ? (a[i] = 9) : continue
end
我之前问过一个关于这个的问题,但可能使问题过于复杂了。给定一个数组:
a = [3,4,3,6,3];
我需要什么代码来执行以下操作:
如果 a == 3
的单个元素
然后以概率 (p=0.67)
,将值更改为 9
否则将元素保留为 3
谢谢。 J
我想这将是实现您想要的最短途径:
a[findall(x -> x==3 && rand()<=0.67, a)] .= 9
更长但可能更清晰的循环版本
for i in findall(a .== 3)
rand() ≤ 0.67 && (a[i] = 9)
end
或
for i in findall(a .== 3)
rand() ≤ 0.67 ? (a[i] = 9) : continue
end