Wolfram mathematica 在mathematica中操作列表中的一个元素

Wolfram mathematica 在mathematica中操作列表中的一个元素,wolfram-mathematica,Wolfram Mathematica,我有一个200个数据点的列表。我想选择一个值,并使用操纵函数更改数据以创建一个错误的数据点,并观察图形上的效果 我最近的尝试包括创建一个变量i,并赋值如下: myarray[[80,2]] = i; 然后使用如下操作: Manipulate[Curve[myarray], {i, 0, 5}] 然而,这并不能提供所需的输出。这样说对我来说没有什么意义,但我看不到其他的方法。在此问题上的任何帮助都将不胜感激 组成一些数据和曲线函数:- myarray = Transpose[{Range[10

我有一个200个数据点的列表。我想选择一个值,并使用操纵函数更改数据以创建一个错误的数据点,并观察图形上的效果

我最近的尝试包括创建一个变量i,并赋值如下:

myarray[[80,2]] = i;
然后使用如下操作:

Manipulate[Curve[myarray], {i, 0, 5}]

然而,这并不能提供所需的输出。这样说对我来说没有什么意义,但我看不到其他的方法。在此问题上的任何帮助都将不胜感激

组成一些数据和
曲线
函数:-

myarray = Transpose[{Range[10], Range[10]/2}];
Curve[myarray_] := ListLinePlot[myarray]
Manipulate[myarray[[8, 2]] = i; Curve[myarray], {i, 0, 5}]

为了补充您的答案,这是一个很好的方法,下面解释一下您的原始代码失败的原因

操纵
,就像
模块
一样,充当作用域构造。因此,
operation
(操纵变量)使用的
i
与使用
myarray[[80,2]]=i设置的
i
不同--它存在于不同的位置:

以下是该问题的一个最小示例:

ClearAll[x, i]
x = i;
Manipulate[{x, i}, {i, 0, 5}]

(* {i, 2.24} *)
解决此问题的一种方法是使用
,但需要为操纵变量使用不同的名称:

ClearAll[x, i]
x = {1, 2, i};
Manipulate[Block[{i = ii}, x], {ii, 0, 5}]

(* {1, 2, 1.41} *)

非常感谢你的帮助!不过我还有一个问题。有可能创建这样的操纵吗?操纵[myarray[[8,2]]=i;somefunction[myarray],{i,0,5}]?我需要将myarray传递给另一个函数,它必须在该函数内部进行操作。我对mathematica有点陌生,所以我不知道这是否是Operation的一个内置功能。事实上,没关系,我看到你在你的帖子中就是这么做的。一切都很顺利,非常感谢您的帮助!
ClearAll[x, i]
x = {1, 2, i};
Manipulate[Block[{i = ii}, x], {ii, 0, 5}]

(* {1, 2, 1.41} *)