"MMpack" külső modul Maxima programhoz

Készítette: Antali Máté, Műszaki Mechanikai Tanszék. Verzió: 2017.02.16.

Mátrixok átméretezése

SubMatrix(mátrix,oszlopok,sorok)
A beadott "mátrix" almátrixát hozza létre, az "oszlopok" és "sorok" által megadott elemekkel.
Példa (a mátrix első sorát veszi): 
    M:matrix([1,2],[3,4]);
    SubMatrix(M,[2],[1,2]); 

SubMatrix(Mx,rows,cols):=
block(
    [n,m,mx],
    n:length(rows),
    m:length(cols),
    mx:zeromatrix(n,m),
    for i:1 thru n do
        for j:1 thru m do
            mx[i,j]:Mx[rows[i],cols[j]],
    return (mx)    
)$

ExtMatrix(mátrix,méret,oszlopok,sorok)
A beadott "mátrix" elhelyezése egy üres "méret" méretű mátrixban, a megadott helyen.
Példa (a mátrix elhelyezése egy 5*5-ös mátrix jobb felső sarkában):
    M:matrix([1,2],[3,4]);
    ExtMatrix(M,[5,5],[1,2],[4,5]);

ExtMatrix(mx,size,rows,cols):=
block(
    [n,m,Mx],
    n:length(rows),
    m:length(cols),
    Mx:zeromatrix(size[1],size[2]),
    for i:1 thru n do
        for j:1 thru m do
            Mx[rows[i],cols[j]]:mx[i,j],
    return (Mx)    
)$