[texhax] iterative construction of matrices - error at insertion of alignment characters or end line command

Matteo Gattanini matteo.gattanini at libero.it
Tue Feb 3 09:14:55 CET 2004



In writings dealing with linear algebra, in which it is continually 
necessary to visualize a lot of matrices of different order, is extremely 
comfortable provide a command that directly create the matrices after 
having declared the number of rows and columns and the name of the elements.
The following code tries to build the bases of such macro; the problem is 
the insertion of the alignment character `&' or end line command `\ 
\'  which causes an error. Anyone can help?
The code:

\NeedsTeXFormat{LaTeX2e}
\documentclass{article}
\usepackage{amsmath}% for `bmatrix' environment

\newcommand{\TAB}{\&} % should be `&'
\newcommand{\ENDROW}{\backslash\backslash}% should be `\\'

\newcommand{\MatrStrut}{\newcount\ir\ir=1\newcount\ic\ic=1 % rows & column 
counters
                         \loop{% rows
                               \loop{% columns
                                     a_{\the\ir\the\ic}}% write element
                               \advance\ic by 1 \ifnum\ic<4\TAB% alignement 
character `&'
                                                           \repeat
                               \ENDROW}%  line-end command `\\'
                         \advance\ir by 1 \ifnum\ir<4\repeat}
\begin{document} %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>%

The second matrix should be obtained with iterative code.
\[ \begin{bmatrix}a_{11}&a_{12}&a_{13}\\
                   a_{21}&a_{22}&a_{23}\\
                   a_{31}&a_{32}&a_{33}\\\end{bmatrix} =
    \begin{bmatrix}\MatrStrut\end{bmatrix} \]

\end{document} %>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>%

% with `multido.sty'
\multido{\ir=1+1}{3}{\multido{\ic=1+1}{3}{%
a_{\ir\ic}\ifnum\ic=3\ENDROW\else\TAB\fi}} 



More information about the texhax mailing list