gammaSample = RandomVariate[GammaDistribution[2, 2], 10];
xArray = Array[0, 10];
yArray = Array[0, 10];
Histogram[gammaSample];
PearsonChiSquareTest[gammaSample]
sorted = Sort[gammaSample];
Print[sorted];
For[i = 1, i <= 10, i++; ReplacePart[xArray, i -> (i - 1/2)/100];]
xArray
您好! 我只想更改数组中的值。我也试过xArray [i] =(i - 1/2)/ 100,但它不起作用。我如何在mathematica中做到这一点?
答案 0 :(得分:0)
mathematica中的数组只是列表,所以你应该更新列表,所以你应该更新 元素到位。通常,mathematica中的函数返回新对象,而不是更新 现有的,像大多数函数式语言一样,所以下面的代码不会改变 数组的内容 在[5]中:= array = {1,2,3,4}
Out[5]= {1, 2, 3, 4}
In[6]:= ReplacePart[array, 3 -> 10]
Out[6]= {1, 2, 10, 4}
In[7]:= array
Out[7]= {1, 2, 3, 4}
所以你可以改变for循环以更新代替数组,我想在那里 是For循环的一个小错误,它使用逗号而不是分号来分隔循环 变量和循环体,所以更改代码如下:
In[24]:= For[i = 1, i <= 10, ++i, xArray[[i]] = (i - 1/2)/100;]
In[25]:= xArray
Out[25]= {1/200, 3/200, 1/40, 7/200, 9/200, 11/200, 13/200, 3/40, \
17/200, 19/200}
答案 1 :(得分:0)
虽然你可以像@ user2903066那样说,这是为了更新xArray,我建议你使用Mathematica,就像它本来要使用的那样。它还可以使您的代码更易于阅读。在此示例中,您可以省略xArray的声明并替换for循环,如下所示:
xArray = Table[(i - 1/2)/100, {i, 1, 10}]