2012-05-08 6 views
1

나는 for 루프를 사용하여 xmaxima에 변수, 더 정확하게는 행렬에 값을 할당합니다. 값은 개별 인덱스에 저장되는 것처럼 보이지만 행렬 변수 이름을 호출하여 전체 행렬 값을 호출 할 수는 없습니다. 예를 들어maxima에서 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

여기에 간단한 방법입니다.

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

관련 문제