【问题标题】:Wolfram Loop Runs Only OnceWolfram 循环只运行一次
【发布时间】:2016-01-11 21:15:05
【问题描述】:

您好,我正在尝试 Wolfram Cloud 上的模数转换器 (ADC) 的软件版本。代码如下。

min =0.0;
max =15.0;
val=5.0;
avg =0.0;

ans= ConstantArray[0.0,8];
i=0;
while[i<8,i=i+1;
avg = (max+min)/2;

min = If[avg<val , min , avg];
max = If[avg<val, avg, max];

Insert[ans, If[val<avg,0,1], i];

Print[avg]
];

Print[ans];

我面临的问题是while循环只运行一次,输出如下所示。我也尝试过 For 循环,但结果是一样的。

7.5`
{0.`,0.`,0.`,0.`,0.`,0.`,0.`,0.`}

知道发生了什么吗?

【问题讨论】:

  • 你需要做ans=Insert[ans,..]
  • 不,不需要像我写的那样工作
  • 它将运行,但该行不执行任何操作。 (除非云的行为与数学不同?)
  • 可能会,但如果在我将 W 大写之后工作正常

标签: wolfram-mathematica wolfram-language


【解决方案1】:

While 使用大写“w”。

While[i < 8, i = i + 1;
 avg = (max + min)/2;
 min = If[avg < val, min, avg];
 max = If[avg < val, avg, max];
 Insert[ans, If[val < avg, 0, 1], i];
 Print[avg]]

【讨论】:

  • 我不敢相信这是问题所在...谢谢
猜你喜欢
  • 2018-05-02
  • 2011-11-02
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 2020-04-29
  • 2021-06-15
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多