Как присвоить результаты вывода в цикле для максимумов различным переменным

Я хочу сохранить вывод этого for в разные переменные, например, матрицы A1, A2 и A3 .

B:matrix([0,-%pi/2,theta[1],0],[0,%pi/2,0,d[2]],[a[3],0,theta[3],0]);

D:matrix_size(B);

for i: 1 step 1 thru D[1] do
display(A:matrix([cos(B[i,3]),(-sin(B[i,3])*cos(B[i,2])), sin(B[i,3])*sin(B[i,2]), 
    B[i,1]*cos(B[i,3])],[sin(B[i,3]),cos(B[i,3])*cos(B[i,2]),-
    cos(B[i,3])*sin(B[i,2]),B[i,1]*sin(B[i,3])],[0,sin(B[i,2]),cos(B[i,2]),B[i,4]],[0,0,0,1]));

Спасибо.


person Julio César Frantz    schedule 25.08.2013    source источник


Ответы (2)


Просто используйте индексированные переменные.

for i:1 thru 3 do A[i] : <complicated stuff>;

Построение переменных A1, A2, A3... возможно, но считается дурным тоном.

person Robert Dodier    schedule 30.09.2013

Вы можете использовать оператор ::

B:matrix([0,-%pi/2,theta[1],0],[0,%pi/2,0,d[2]],[a[3],0,theta[3],0]);

D:matrix_size(B);

for i: 1 step 1 thru D[1] do
concat('A, i) :: matrix([cos(B[i,3]),(-sin(B[i,3])*cos(B[i,2])), sin(B[i,3])*sin(B[i,2]), 
  B[i,1]*cos(B[i,3])],[sin(B[i,3]),cos(B[i,3])*cos(B[i,2]),-
  cos(B[i,3])*sin(B[i,2]),B[i,1]*sin(B[i,3])],[0,sin(B[i,2]),cos(B[i,2]),B[i,4]],[0,0,0,1]);
person slitvinov    schedule 29.08.2013