我想在一个表上重复一个函数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很好地解决了代码中的问题,所以我不会。不过,要回答您的问题,我首先将您的函数ffc放在单独的单元格中,在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/

10-12 03:27