我遇到了一个复杂的问题。现在我想自动化它。在这样做时,我确实在矩阵中处理一个位置。这个位置确实包含一个变量。我想通过它在矩阵中的位置为这个变量赋值。以下是我想要做的一个简单示例:
(%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()显然不适合这个。
我的问题是:我想要的甚至可能吗?有谁知道该怎么办?我看了一整天,现在我很郁闷: - (
答案 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);
我希望其中一个回答你的问题..