【发布时间】:2017-01-29 20:39:08
【问题描述】:
有没有办法“元编程”获得具有以下结构的代码块:
if r1 < R1
s = 1
elseif r1 < R2
s = 2
... etc until N
end
end
谢谢!
【问题讨论】:
-
查看
Base.Cartesian.@nif -
但是可能还有另一种(更好的?)方法可以实现您想要的。你想做什么?
-
@DavidP.Sanders Hola 再次大卫。 (来自阿根廷的大粉丝)......我想要做的是在这里“总结”:pastebin.com/2qYcBWfR我不想在这里发布所有这些内容以使问题不那么混乱。但是,是的,这基本上是没有真正编程背景的化学工程师学生在这里攻读博士学位时会遇到的问题。感谢您的关注。
-
你确定你的两段代码做同样的事情吗?在 pastebin 中,您的
sample函数计算R的累积总和,而展开的版本似乎只是直接与R*变量进行比较。不同的一点是,调用rand()实际上成本很高。您可以通过分配块rand(N)然后从中提取样本来加快速度。 -
还有一件事(再次参考 Pastebin 上的代码):在我的笔记本电脑上使用
length(R)=14 运行采样10^10次大约需要 4 分钟。你怎么能把它剃掉半个多小时?我认为一定有更多的事情发生。
标签: metaprogramming julia loop-unrolling