Model Mathematica代码中的0=1错误来自哪里?

Model Mathematica代码中的0=1错误来自哪里?,model,wolfram-mathematica,mathematical-optimization,mathematical-expressions,Model,Wolfram Mathematica,Mathematical Optimization,Mathematical Expressions,我试图建立一个简单的选民模型。我需要建立一个矩阵,它的值由一个函数给出。然后将它们聚合(在本例中为简单平均值)以确定结果(简单1或0)。然后确定结果与平均值的偏差。我被卡住了,因为每当if语句产生0时,减法将其视为1。请帮忙。 *奖励:若有一种方法可以为矩阵的每四行更新一个变量,并将该值结转以更好地模拟和选择,那个将非常感激。 提前谢谢大家,, 查尔斯 m=3 n=5 p:=RandomInteger[] c=表[p,{i,m},{j,n}] t=总计[c,{2}] 平均值=t/n 功能[如果[

我试图建立一个简单的选民模型。我需要建立一个矩阵,它的值由一个函数给出。然后将它们聚合(在本例中为简单平均值)以确定结果(简单1或0)。然后确定结果与平均值的偏差。我被卡住了,因为每当if语句产生0时,减法将其视为1。请帮忙。 *奖励:若有一种方法可以为矩阵的每四行更新一个变量,并将该值结转以更好地模拟和选择,那个将非常感激。 提前谢谢大家,, 查尔斯

m=3
n=5
p:=RandomInteger[]
c=表[p,{i,m},{j,n}]
t=总计[c,{2}]
平均值=t/n

功能[如果[0.5更换最后三行:

...
v = Function[If[0.5 <= # <= 1, 1, 0]] /@ avg
d = Abs[v - avg] 
Total[d]
。。。

v=功能[如果[0.5更换最后三行:

...
v = Function[If[0.5 <= # <= 1, 1, 0]] /@ avg
d = Abs[v - avg] 
Total[d]
。。。

v=函数[If][0.5您的
函数
avg
中的每个项目重置
v
,因此它以最后一个值结束。这是有意的还是您希望
v
成为一个列表?是的,我希望它分别计算与v中每个值的0,1近似值之间的距离。输出向量d与我预期的是1x3,但差异不是你可以简单地做
v=Round[avg]
谢谢,它可以工作,而且更干净。你的
函数为
avg
中的每个项目重置
v
,因此它以最后一个值结束。这是有意的还是你期望
v
成为一个列表?是的,我希望它分别计算从v中每个值的0,1近似值得出的距离。输出向量d是1x3如我所料,但差异计算不正确。您只需执行
v=Round[avg]
谢谢你的帮助@ChrisDegnen。谢谢你的帮助@ChrisDegnen。它很好用,用途广泛。希望我不会再犯同样的错误。谢谢你的帮助@ChrisDegnen。它很好用,用途广泛。希望我不会再犯同样的错误。