嗨,我正在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.`}
知道发生了什么事吗?
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]]