我使用for循环将值赋给变量,更确切地说是一个矩阵,在xmaxima中。这些值似乎存储在各个索引中,但我无法通过调用矩阵变量名来调用整个矩阵值。
例如:
假设我正在分配xreal[1]=5; xreal[2]=6;...... xreal[5]=9
。我希望xreal有[5 6 7 8 9]
,但这种情况并没有发生。
以下是我的代码。什么是正确的方法?
k:1;
for i from 1 thru length(xvals) do (
(if(imagpart(xvals[i]) = 0) then xreal[k]:xvals[i]),k:k+1
);
在这里,
xreal[1]; gives 0.06111
xreal[2]; gives 0.080 and so on.
但是xreal
只给出了“xreal”,即变量名本身。
答案 0 :(得分:1)
您必须先简单地初始化矩阵。
示例:
(%i1) m:zeromatrix(1,3);
(%o1) [0 0 0]
(%i2) for i from 1 thru 3 do (
m[1,i]: i);
m;
(%o2) [1 2 3]
答案 1 :(得分:1)
这是一种更简单的方式。
makelist(如果imagpart(xvals [s])= 0 .....,i,1,length(xvals))