Está en la página 1de 4

OPERACIONES CON MATRICES:

1.- Definición del problema y análisis:


Implementar en Matlab un grupo de funciones que representan la lectura, escritura,
suma, resta, producto matricial y matriz transpuesta, y un programa que pruebe cada
una de las funciones.

2.- FUNCIONES EN MATLAB:


% LeerMatriz.m
function [A, m, n] = LeerMatriz(nm)
fprintf('INGRESAR LOS DATOS DE LA MATRIZ %s:\n', nm);
m = -1;
while (m < 1 || m > 20)
m = input('numero de filas entre 1 y 20: ');
end;
n = -1;
while (n < 1 || n > 20)
n = input('numero de columnas entre 1 y 20: ');
end;
fprintf('ELEMENTOS DE LA MATRIZ \n');
for i = 1 : m
for j = 1 : n
A(i, j) = input(sprintf('Elem(%d, %d) = ', i, j));
end;
end;
return;

% EscribirMatriz.m
function EscribirMatriz(A, m, n, nm)
fprintf('MATRIZ %s:\n', nm);
for i = 1 : m
fprintf('FILA %d:\n', i);
for j = 1 : n
fprintf('%.2f ', A(i, j));
end;
fprintf('\n');
end;
return;

% Sumar.m
function [C, r, s] = Sumar(A, B, m, n, p, q)
if (m ~= p || n ~= q)
fprintf('Error en la suma %d ~= %d o %d ~= %d\n', m, n, p, q);
return;
end;
for i = 1 : m
for j = 1 : n
C(i, j) = A(i, j) + B(i, j);
end;
end;
r = m;
s = n;
return;

% Restar.m
function [C, r, s] = Restar(A, B, m, n, p, q)
if (m ~= p || n ~= q)
fprintf('Error en la resta %d ~= %d o %d ~= %d\n', m, n, p, q);
return;
end;
for i = 1 : m
for j = 1 : n
C(i, j) = A(i, j) - B(i, j);
end;
end;
r = m;
s = n;
return;

% Multiplicar.m
function [C, r, s] = Multiplicar(A, B, m, n, p, q)
if (n ~= p)
fprintf('Error en el producto matricial %d ~= %d\n', n, p);
return;
end;
for i = 1 : m
for j = 1 : q
C(i, j) = 0;
for k = 1 : n
C(i, j) = C(i, j) + A(i, k) * B(k, j);
end;
end;
end;
r = m;
s = q;
return;

% Transponer.m
function [B, p, q] = Transponer(A, m, n)
for i = 1 : n
for j = 1 : m
B(i, j) = A(j, i);
end;
end;
p = n;
q = m;
return;

PROGRAMA PRINCIPAL:
% OperMatrices.m
% Operaciones con matrices:
[A, m, n] = LeerMatriz('A');
[B, p, q] = LeerMatriz('B');
EscribirMatriz(A, m, n, 'A');
EscribirMatriz(B, m, n, 'B');
[C, r, s] = Sumar(A, B, m, n, p, q);
EscribirMatriz(C, m, n, 'A + B');
[C, r, s] = Restar(A, B, m, n, p, q);
EscribirMatriz(C, m, n, 'A - B');
[C, r, s] = Multiplicar(A, B, m, n, p, q);
EscribirMatriz(C, m, n, 'A * B');
[C, r, s] = Transponer(A, m, n);
EscribirMatriz(C, m, n, 'Transpuesta de A');

RESULTADOS DE LA CORRIDA:
INGRESAR LOS DATOS DE LA MATRIZ A:
numero de filas entre 1 y 20: 2
numero de columnas entre 1 y 20: 2
ELEMENTOS DE LA MATRIZ
Elem(1, 1) = 5
Elem(1, 2) = 6
Elem(2, 1) = 7
Elem(2, 2) = 8
INGRESAR LOS DATOS DE LA MATRIZ B:
numero de filas entre 1 y 20: 2
numero de columnas entre 1 y 20: 2
ELEMENTOS DE LA MATRIZ
Elem(1, 1) = 1
Elem(1, 2) = 2
Elem(2, 1) = 3
Elem(2, 2) = 4
MATRIZ A:
FILA 1:
5.00 6.00
FILA 2:
7.00 8.00
MATRIZ B:
FILA 1:
1.00 2.00
FILA 2:
3.00 4.00
MATRIZ A + B:
FILA 1:
6.00 8.00
FILA 2:
10.00 12.00
MATRIZ A - B:
FILA 1:
4.00 4.00
FILA 2:
4.00 4.00
MATRIZ A * B:
FILA 1:
23.00 34.00
FILA 2:
31.00 46.00
MATRIZ Transpuesta de A:
FILA 1:
5.00 7.00
FILA 2:
6.00 8.00
>>

También podría gustarte