Esa matriz tendrá un total de 3*6=18 variables indexadas:
c(1,1), c(I,2),
,
c(I,6)
c(2,1), c(2,2),
, c(2,6)
c(3,l), c(3,2),
, c(3,6)
La misma idea es válida para cualquier número de dimensiones.
Aunque es posible tener una variable sencilla y una matricial con el mismo nombre, no
puede haber dos matrices que se llamen igual, aunque tengan diferente número de di
mensiones.
Hasta ahora hemos descrito las
matrices numéricas.
También existen
matrices literales,
cuyos elementos son, naturalmente, cadenas literales. Las cadenas de una matriz se distin
guen de las cadenas sencillas en que son de longitud fija y en que la asignación de valores
se realiza por el procedimiento de Procrustes (¿lo recuerda?): si el valor es demasiado lar
go, se lo recorta; si es demasiado corto, se lo complementa con espacios por la derecha.
El nombre de toda matriz literal consiste en una sola letra seguida de
$.
A diferencia de
lo que ocurría con las matrices numéricas, una matriz literal y una variable literal sencilla
no pueden tener el mismo nombre.
,.
Supongamos, pues, que queremos una matriz
a$
que pueda albergar cinco cadenas. Debe
mos decidir qué longitud van a tener las cadenas. Por ejemplo, una matriz para cinco ca
denas de diez caracteres cada una se dimensiona con:
DIM a$(5.10)
(escriba esta orden)
Esta sentencia prepara una matriz de 5*10
caracteres,
que podemos manejar individual
mente o por filas completas:
a$(1)=a$(I,I)a$(1
,2)
a$(I, 10)
a$(2)=a$(2, l)a$(2,2)
a$(2, 10)
a$(3)=a$(3,
1
)a$(3
,2)
a$(3, 10)
a$(4)=a$(4, l)a$(4,2)
a$(4, 10)
a$(5)=a$(5, 1)a$(5,2)
a$(5, 10)
Si al usar la matriz especificamos el mismo número de subíndices (dos en este caso) que
dimensiones hay en la sentencia
DIM,
obtenemos un solo carácter. Pero si omitimos el
último, la matriz da la fila entera (una cadena de longitud fija). Así que, por ejemplo,
a$(2,7)
es el séptimo carácter de la cadena
a$(2).
Utilizando la notación de disección de
cadenas (Sección 8 de este capítulo) también podríamos escribir
a$(2)(7)
en lugar de
a$(2,7).
Ahora escriba:
LET a$(2)="1234567890"
y
PRINT a$(21. a$(2.7)
Sección 12. Matrices
101