2012-05-08 3 views
1

Я использую for loop для назначения значений переменной, а точнее матрицы, в 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", т.е. само имя переменной.

ответ

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

Вот более простой способ.

makelist (if imagpart (xvals [s]) = 0 ....., i, 1, length (xvals))

 Смежные вопросы

  • Нет связанных вопросов^_^