Hola y bienvenido.
En esta conferencia quiero hablar sobre matrices multidimensionales.
Hasta este punto, si ha Pensó en una matriz, acaba de decir que
una matriz es una variable que puede almacenar muchos tipos de datos.
Puede ser más complicado que eso.
Puedes tener básicamente muchos dimensiones de una matriz.
Entonces, si solo tiene una matriz lineal que es lo que hemos discutido hasta ahora, eso se
llama una dimensión única.
Y sabemos que es un sencillo dimensión porque solo
tiene un paréntesis con un tamaño.
El lenguaje c permite matrices de cualquier dimensión a ser multado.
Así que esto es una especie de pensamiento matriz anidada, una matriz de una matriz.
Entonces matrices bidimensionales son los más comunes.
Pero realmente puedes hacer matrices tridimensionales, matrices de
cuatro dimensiones, matrices de cinco dimensiones, pero no hay muchos casos
de uso para 3 4 y 5.
Realmente, o vas a tener una matriz unidimensional que
use en su programa o matriz bidimensional.
las matrices bidimensionales son comunes porque esencialmente
representan filas y columnas en una hoja de cálculo, así es
como puedes visualizarlo o una matriz o una tabla.
Esa es una matriz bidimensional, tienes filas y tienes columnas.
Para que puedas almacenar más datos que
una matriz unidimensional especificando los tamaños.
Pero es muy aplicable porque parece una matriz.
Y hay aplicaciones que es posible que desee escribir que tenga este concepto
de matriz, específicamente aquí sería más relevante
una aplicación matemática.
Pero puedes usar para hacer dos dimensiones matrices para muchas cosas diferentes.
Un ejemplo es una matriz.
Pero nuevamente, visualícelo como una mesa.
Las matrices bidimensionales son declarado de la misma manera
que una matriz unidimensional.
La única diferencia eres tú ahora tener otro juego de soportes.
Entonces, en este ejemplo, estamos declarando una matriz denominada matriz de tipo
int que tiene 4 filas y 5 columnas.
Eso significa que puedes almacenar 20 elementos. dentro de esa matriz bidimensional.
Entonces deberías saber cómo cada la dimensión se especifica con
su propio par de corchetes.
así es como puedes detectar fácilmente cuántas dimensiones tiene una matriz.
Si tuvieras 3 paréntesis allí, eso sería una matriz tridimensional.
Si tienes 4, serían cuatro.
Este tiene 2, por lo que es 2.
Y hasta lo antes las conferencias solo tenían una, así que sabíamos que
era una dimensión única.
Así que mira los corchetes, presta atención a eso.
Nuevamente 4 filas, 5 columnas, total de 20 elementos.
Para inicializar una matriz bidimensional, se inicializará de la misma manera que
un modelo unidimensional matriz, el mismo tipo de sintaxis, solo
agregará más.
Entonces, cuando enumeras los elementos para la inicialización, los valores
se enumerarán por fila.
Y la diferencia aquí es que cuando
pones los valores iniciales para cada fila, vas a hacer entre llaves, llaves y
luego vas a encerrar todas las filas entre tirantes.
Entonces se verá algo como esto.
Si creamos una matriz de números, que es de 2
dimensiones, 3 filas y 4 columnas y queremos inicializarlo, todo lo que
tienes que hacer es poner entre llaves el toda la matriz y luego agregue corchetes anidados
internos para cada fila.
Entonces aquí estamos inicializando valores 0 sub-0 a 10, 0 sub-1 a 20, 0 sub-2 a 30
y 0 sub-3 a 40.
Y así es como accedes matrices multidimensionales también.
Accedes a ellos con la fila de la columna.
Solo tienes que recordar que se basa en 0.
Entonces la mano superior izquierda que sería la fila 1, la columna 1 sería 00 y eso sería
igual a 10.
La fila 1, la columna 2 sería igual a 20,
pero accedería a él como números 0 sub-1.
Porque la primera matriz contiene 3 filas a las que accede, ese es el número que especifica para el número de fila y
entonces el número de columna es la siguiente especificación
para acceder a la matriz.
Pero la individualización es bonita simple, solo separe
las cosas por comentarios con los corchetes.
Y accediendo a ellos, accederías es como acceder a una matriz normal, excepto que
ahora está accediendo este concepto de una fila en una columna.
Entonces, el uso de los pares internos de Las llaves son en realidad opcionales, pero
debes usarlas para facilitar la lectura.
Si no proporcionó esos aparatos, en realidad,
podría proporcionar 10 20 30 40 15 25 35, todo solo consecutivamente, pero es muy difícil visualizar lo
que está inicializando.
Como programador, la legibilidad es muy, muy importante porque aumenta la calidad
del código es más fácil mantener el código.
Cuando miro esto aquí mismo, Puedo identificar fácilmente, especialmente con
los comentarios, lo que soy inicializando a, qué valores y qué filas
se van a inicializar.
Si tuviera eso como una sola línea sólo números consecutivos,
me perdería muy rápido.
Entonces, aunque los corchetes internos no son necesarios, utilícelos.
Al igual que con una matriz unidimensional, no es necesario
inicializar toda la matriz.
Simplemente puede inicializar ciertas áreas.
Entonces, en este ejemplo, estamos creando una matriz bidimensional con
4 filas y 5 columnas.
Solo estamos inicializando el primeros 3 elementos de cada fila.
Entonces la fila 1, columna 1 es 10, fila 1 columna 2 es 5 y fila 1 columna 3 es un 3
negativo, y lo mismo para la
segunda columna y así sucesivamente 900 32 31008.
Para los que no establecimos los valores cuarto y quinto de
cada fila, en realidad van para que se establezca en 0 automáticamente porque los
dejamos fuera.
Y en este caso, realmente Hay que proporcionar los
tirantes, los interiores.
Porque aquí si lo hiciéramos eso, la
inicialización sería un desastre.
Porque si tu no tuvieras las llaves, lo
haría de forma consecutiva.
Entonces, ¿qué pasaría es esto?
en realidad inicializaría los primeros 12 elementos.
Entonces inicializaría todos los elementos en la primera fila, todos los elementos en la segunda fila
y luego los 2 primeros elementos de la tercera fila y luego
el resto de los elementos en la tercera fila, el resto de los
elementos de la cuarta fila sería 0.
De nuevo, esta es una matriz de 4 filas y 5 columnas.
Simplemente los haría de forma consecutiva.
Así que no olvides los frenos si es si
solo desea especificar ciertos elementos de inicialización.
Tu tambien puedes hacer inicializadores designados.
Recuerde, este es el concepto C99.
Eso es opcional en C11 donde puede
especificar índices específicos que se inicializarán.
Entonces puede usar subíndices en el lista de inicialización, como en
una matriz unidimensional si lo desea para hacer un inicializador designado, simplemente
haría algo como esto.
Entonces aquí estamos declarando nuestra matriz matriz de 4 filas y 3 columnas, pero en realidad estamos especificando que
0 0 es igual a 1, 1 1 es igual a 5 y 2 2
es igual a 9.
Entonces, cuando volvemos a decir 2 2, ¿qué estamos diciendo que es la fila 2, que en realidad es
la fila 3 porque comenzamos en 0, columna 2, que en realidad es la columna 3.
Nuevamente, visualice esto como una tabla o una hoja de cálculo.
Y empieza accediendo a los elementos en la esquina superior izquierda.
Pero si entiendes que el 4 representa las filas y 3
representa las columnas, es bastante intuitivo después de eso.
Entonces, lo que esto está haciendo es inicializando los 3 elementos indicados
de la matriz a valores especificados.
Pero lo que deberías observe que aquí está la sintaxis.
Todos los valores no especificados aquí van a ser 0 por defecto.
Entonces esto solo va para inicializar 3 valores.
Cada conjunto de valores que inicializar van a ser los
elementos en una fila entre llaves.
Y luego toda la inicialización pasa entre otro par de tirantes.
Entonces ves que tenemos el corchetes en los exteriores al igual que
la inicialización normal y luego tenemos los corchetes para acceder
a la matriz en su interior.
Y luego tenemos comas para separar cada fila y cada conjunto de valores de
fila se separa del siguiente conjunto por una coma.
Entonces los valores están separados y también los índices de fila.
Ahora solo porque dijimos eso tenemos 2 dimensiones y hemos
estado hablando de eso; puede en realidad tienen muchas otras dimensiones.
Todo lo que he hablado con 2 dimensiones también se aplica
a 3 dimensiones 4 dimensiones 5 dimensiones.
Entonces, si quisieras declarar
un Matriz tridimensional, lo haría con 3 corchetes.
Así que aquí hay una matriz llamada caja de tipo int de 10 20 y 30.
Es posible que desee utilizar
un matriz tridimensional tal vez si estuviera almacenando valores xyz de algún tipo, probablemente no necesite hacer esto.
Matrices tridimensionales y realmente no son comunes.
Como resumen, puede visualizar un matriz unidimensional como una fila
de datos, una sola fila, bidimensional matriz como una tabla, una matriz
u hoja de cálculo, en un formato tridimensional matriz, puede visualizar como una pila de tablas de
datos, por lo que una pila de tablas.
Si necesita tantos datos, Va a ser muy difícil acceder
a él y probablemente confuso.
Y cualquiera que esté manteniendo esto programa para una
matriz tridimensional o superior, probablemente vaya perderse tratando
de averiguar qué está pasando, pero puedes hacerlo de nuevo y si alguna vez va
a necesitar iterar a través de cualquiera de estos uno, dos, arreglos tridimensionales,
probablemente usará un bucle.
Y cuantas más dimensiones tengas en el bucle, más bucles
anidados tendrás.
Entonces, si desea procesar un matriz tridimensional, tendrá
3 bucles anidados.
Y si desea procesar un matriz de cuatro dimensiones,
tendrá 4 bucles anidados.
En cuanto a inicializar una matriz que es superior a 2 dimensiones, de nuevo, va a aplicar
el mismo tipo de cosas, solo lo vas a
extender un poco.
Entonces una matriz tridimensional tendrá 3 niveles
de tirantes anidados con el nivel interior que contiene un conjunto de valores
de inicialización para cada fila, por lo que parece algo como esto.
Aquí tenemos un tridimensional array, 2 3 y 4, una pila de tablas
de datos esencialmente.
Y el primer bloque de 3 filas, vamos
a inicializar y el segundo bloque de 3 filas vamos a inicializar.
Entonces, lo que esto está diciendo es de nuevo primer bloque y segundo bloque porque no inicializamos
el tercer y el cuarto bloque, solo el primero
y el segundo.
Entonces tenemos 4 bloques y tu puede pensar en cada bloque una pila
de tablas de datos, cada bloque que tiene filas y columnas.
Entonces el primer bloque será inicializando solo las primeras 3 filas, que es todo lo
que tenemos son 3 filas.
Y luego el segundo bloque va para inicializar las siguientes 3 filas, pero el tercer y
cuarto bloques no se van a inicializar.
Si desea inicializar el tercer
y cuarto bloques, tendrías más tirantes internos, corchetes y así sucesivamente.
Lo mismo se aplica aunque para el los que no
inicialice, se inicializarán a 0.
Pero de nuevo, puedes ver como se vuelve muy tedioso y
también muy difícil de seguir.
Cuando quieres procesar los elementos en una matriz dimensional,
mencioné, usará bucles anidados.
De nuevo, va a corresponder directamente al número de dimensiones.
Y cada bucle va a iterar sobre una dimensión de matriz.
Entonces se verá algo como esto.
Éste es un ejemplo de un matriz tridimensional.
Tienes un bucle exterior y entonces tienes 2 bucles internos.
El bucle exterior va a ser el primera matriz externa, por lo que el bucle externo pasaría esencialmente por las filas,
la segunda pasará por las columnas y la
tercera uno pasará por los bloques.
De nuevo, lo que deberías estar notando es guau, esto se
pone muy peludo y muy tedioso, muy rápido.
Así que trata de evitar las tres dimensiones. matrices de cuatro dimensiones y ni siquiera
veo que muchas utilicen casos para ello, uno y dos son realmente
todo lo que va a utilizar.
Pero entiende multidimensional Las matrices son una posibilidad en c, una forma de almacenar más datos y
acceder el mismo nombre con muchos elementos de datos. Gracias.