Search code examples
swapmaxima

How to swap arrays in Maxima


I'm having problems in swapping arrays

array(a,1,4); array(c,1,4);

I tried this:

[a,c]: [c,a]

this:

[a[1,1],c[1,1]]: [c[1,1],a[1,1]],
 [a[1,2],c[1,2]]: [c[1,2],a[1,2]],
 [a[1,3],c[1,3]]: [c[1,3],a[1,3]]

and this:

f(t1,t2):= block(for i:1 while i<=3 do(
 t[1,i]: t1[1,i],
 t1[1,i]: t2[1,i],
 t2[1,i]: t[1,i]
 ));

but it won't work.

I appreciate any help bros.


Solution

  • If you don't mind copying data

    (%i1) array(a, 4, 1)$
    
    (%i2) fillarray(a, makelist(i, i, 10))$
    
    (%i3) listarray(a);
    (%o3)                   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    (%i4) array(b, 4, 1)$
    
    (%i5) fillarray(b, makelist(10*i, i, 10))$
    
    (%i6) listarray(b);
    (%o6)              [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
    (%i7) array(c, 4, 1)$
    
    (%i8) fillarray(c, a)$
    
    (%i9) fillarray(a, b)$
    
    (%i10) fillarray(b, c)$
    
    (%i11) remarray(c)$
    
    (%i12) listarray(a);
    (%o12)             [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
    (%i13) listarray(b);
    (%o13)                  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]