如何在maxima中使用for循环迭代地为变量赋值?

时间:2012-05-08 07:01:42

标签: arrays for-loop maxima

我使用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”,即变量名本身。

2 个答案:

答案 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))