Matrix transposition: Difference between revisions

m
→‎{{header|REXX}}: added REXX language.
m (→‎{{header|Tcl}}: use better template)
m (→‎{{header|REXX}}: added REXX language.)
Line 1,229:
tm <- t(m)
print(tm)</lang>
 
=={{header|REXX}}==
<lang rexx>
/*REXX program transposes a matrix, shows before and after matrixes. */
 
x.=''
x.1='1.02 2.03 3.04 4.05 5.06 6.07 7.07'
x.2='111 2222 33333 444444 5555555 66666666 777777777'
 
do r=1 while x.r\=='' /*build the "A" matric from X. numbers */
do c=1 while x.r\==''; parse var x.r a.r.c x.r; end
end
 
rows=r-1; cols=c-1
L=0 /*L is the maximum width element value.*/
 
do i=1 for rows
do j=1 for cols
b.j.i=a.i.j; L=max(L,length(b.j.i))
end
end
 
call showMat 'A',rows,cols
call showMat 'B',cols,rows
exit
 
 
/*─────────────────────────────────────SHOWMAT subroutine───────────────*/
showMat: parse arg mat,rows,cols; say
say center(mat 'matrix',cols*(L+1)+4,"-")
do r=1 for rows
_=''; do c=1 for cols; _=_ right(value(mat'.'r'.'c),L); end; say _
end
return
</lang>
Output:
<pre style="height:30ex;overflow:scroll">
---------------------------------A matrix---------------------------------
1.02 2.03 3.04 4.05 5.06 6.07 7.07
111 2222 33333 444444 5555555 66666666 777777777
 
--------B matrix--------
1.02 111
2.03 2222
3.04 33333
4.05 444444
5.06 5555555
6.07 66666666
7.07 777777777
</pre>
 
=={{header|RLaB}}==