2012-05-08 50 views
1

我正在使用for循環爲xmaxima中的變量(更確切地說是一個矩陣)賦值。這些值似乎存儲在單個索引中,但我無法通過調用矩陣變量名稱來調用整個矩陣值。如何在最大值中使用for循環迭代地賦值給變量?

例如:

假設我分配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」 即變量名本身。

回答

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

這裏有一個簡單的方法。 (如果imagpart(xvals [s])= 0 .....,i,1,長度(xvals))

makelist