最大值:通过在矩阵中对其赋值,为变量赋值

时间:2014-04-17 13:23:00

标签: maxima

我遇到了一个复杂的问题。现在我想自动化它。在这样做时,我确实在矩阵中处理​​一个位置。这个位置确实包含一个变量。我想通过它在矩阵中的位置为这个变量赋值。以下是我想要做的一个简单示例:

    (%i1) M:[a,b,c];
    (%o1) [a,b,c]
    (%i2) M[1];
    (%o2) a
    (%i3) ev(M[1]):3;
    (%o3) error: assignment: cannot assign to ev(M[1])
    (%i4) float(a);
    (%o4) a

我会喜欢变量" a"现在是3。但ev()显然不适合这个。

我的问题是:我想要的甚至可能吗?有谁知道该怎么办?我看了一整天,现在我很郁闷: - (

2 个答案:

答案 0 :(得分:6)

我认为你想要的是::运算符,它会评估它的左侧并分配给它。

(%i1) M : [a, b, c] $
(%i2) M[1] :: 123 $
(%i3) a;
(%o3)      123

答案 1 :(得分:1)

将M替换为值3:

M: M, a=3;

当然,这只是一个较短的写作版本:

M: ev(M, a=3);

或者只使用ev(M, a=3)而不是M来使用M而a = 3一次而不更改内存中的M..

将M中的第一个元素设置为3:

M[1]: 3

在M:

中替换存储在M [1]中的变量
M: ev(M, M[1]=3);

我希望其中一个回答你的问题..