我想在一个表上重复一个函数n次,对于n = 2,我有以下代码,如何确保函数每次运行两次,因为我的fc每次都是不同的?
smat = Table[{9, 8, 10}, {3}]
f[x_?Table] := ReplacePart[
x, {{2, 1} -> x[[2]][[1]] - #, {2, 2} -> x[[2]][[2]] + #}] &@ fc[x[[2]][[1]]];
fc[k_?NumericQ] := Count[RandomReal[{0, 1}, k], x_ /; x < .1]
Nest[f, smat, 2]
最佳答案
Acl很好地解决了代码中的问题,所以我不会。不过,要回答您的问题,我首先将您的函数f
和fc
放在单独的单元格中,在fc
之前声明f
,并在每个单元格前加上Clear[<function name>]
。现在,要测试是否两次应用f
,请临时将fc
替换为
fc[_]:= a
或使用a以外的其他“虚拟”值,但这应该是提高可读性的象征。请注意,
{1,2,3} + a == {1 + a, 2 + a, 3 + a}
,因此,如果两次应用f
,则x[[2]][[1]]
和x[[2]][[2]]
中的每个术语都将添加2 a
。现在,如果您不确定
fc
本身是否正常工作,我会首先将其应用于多个没有f
的情况。关于wolfram-mathematica - 在Mathematica中将函数重复n次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6590147/