Professional Documents
Culture Documents
Matrices en C
Se llama matriz de orden m×n a todo conjunto rectangular de
Un arreglo que puede tener múltiples índices elementos aij dispuestos en m líneas horizontales (filas) y n
verticales (columnas) de la forma:
es llamado arreglo multidimensional.
Matrices
Elemento: aij a11
a12 a1n
Recorrido sobre matrices
Tamaño: m n a21 a22 a2 n Se puede acceder a los elementos
Matriz cuadrada: n n
de un arreglo bidimensional de
(orden n) igual forma que a un elemento de
a amn un arreglo unidimensional.
Elementos de la diagonal: ann m1 am 2
La diferencia es que en los
elementos bidimensionales deben
especificarse los índices de la fila y
a1 la columna.
Vector columna
(matriz n x 1) a2
Línea 1: declaración de matriz
Línea 2: declaración de índices, i para filas y j para columnas
an
Línea 3 – 7: recorrido sobre filas y columnas
Vector fila
(a1 a2 an )
(matriz 1 x n) 5 6
1
Ejemplo 1:
7 8
• Matriz simétrica: es una matriz cuadrada • Matriz nula: es una matriz en la que todos los • Matriz unidad o identidad: es una matriz
Matriz fila: A = (1 3 5 7 9 )
que verifica que: elementos son nulos. escalar, cuya diagonal principal es 1.
aij = a ji A = AT 0 0 0
0
0
1 0 0
2 O = 0 0 0 O = 0 0 I3 = 0 1 0
1 2 4 0 0 0
0 0 0 0 1
Matriz columna: A = 4
6 3 3 3 2
2 3 5 • Matriz diagonal: es una matriz cuadrada, en • Matriz triangular superior: es una matriz
4 5 -1
la que todos los elementos no pertenecientes a donde todos los elementos por debajo de la
diagonal son ceros.
la diagonal principal son nulos.
1 3 5 • Matriz antisimétrica: es una matriz 2 0 0 1 3 6
cuadrada que verifica que:
D = 0 3 0 T = 0 2 3
Matriz cuadrada:A= 2 4 6
1 1 1 aij = -a ji A = –AT 0 0 1
0 0 4
• Matriz escalar: es una matriz diagonal • Matriz triangular inferior: es una matriz
Diagonal 0 2 -4
secundaria
Diagonal donde todos los elementos de ella son iguales. donde todos los elementos por encima de la
diagonal son ceros.
principal -2 0 3
4 -3 0 2 0 0
1 0 0
A = 0 2 0
T = 3 2 0
0 0 2
3 5 4
2
Ejemplo 2:
Matriz cero 0 0
0 0 0
0= ,0= , 0 = 0 0 #define DIM1 3
0 0 0 0 0
#define DIM2 3
…
A+0=A int i, j, k;
A + (–A) = 0 int M[DIM1][DIM2] = { 1,2,3,4,5,6,7,8,9}; /*inicializa la matriz M */
k=1;
for( i=0; i<DIM1; i++) /* se inicializa la matriz M con for’s anidados*/
Matrices triangulares for( j=0; j<DIM2; j++)
{
M[ i ][ j ] = k;
2 0 0 0 0
1 2 3 4 k ++;
1 6 0 0 0 }
0 5 6 7 8 9 3 0 0
0 0 8 9 for( i=0; i<DIM1; i++) /* se imprime la matriz M */
1 1 1 2 0
0 0 0 1
for( j=0; j<DIM2; j++)
15 2 3 4 1 printf(“ elemento M(%2d,%2d) vale %d \n”, i+1, j+1, M[ i ][ j ]);
Triangular superior Triangular inferior
13
Ejemplo 3: Escriba un programa que lea una matriz cuadrada, la Ejercicio 3: continuación …
presente en pantalla, y escriba la suma de todos los números que no
están en la diagonal /* escritura por filas, la matriz es cuadrada */
for( i=0; i<FILAS; i++)
#include <stdio.h> {
#define FILAS 3 for( j=0; j<COLUM; j++)
#define COLUM 3 printf(“%5d”,M[ i ][ j ] );
printf(“\n”);
void main() }
{
/* Declaracion de variables */ /* calculo de la suma */
int M[FILAS][COLUM] /* ENTRADA se guarda en arreglo de 2 dimensiones */ suma = 0;
int i, j, suma; for( i=0; i<FILAS; i++) /* se imprime la matriz M */
for( j=0; j<COLUM; j++)
/* lectura por filas, la matriz es cuadrada */ if( ! (i==j))
for( i=0; i<FILAS; i++) suma += M[i][j];
for( j=0; j<COLUM; j++) /* imprime suma */
scanf(“%d”,M[ i ][ j ] ); printf(“La suma es: %5d”, suma );