如何解决Julia,有条件地替换单个元素
我之前问过一个关于此的问题,但可能使问题过于复杂。给定一个数组:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。