Académique Documents
Professionnel Documents
Culture Documents
ESTRUCTURA DE DATOS
Las estructuras surgen para crear variables que puedan contener nmeros y textos al
mismo tiempo.
Las estructuras son arreglos en MATLAB con nombres contenedores de datos llamados
campos.
Los campos de una estructura pueden contener cualquier tipo de dato
Trabajador
.nombres
Luis Mendoza
Salas
.salario
750
.horas
[9 8 10 9 10;
8 8 8.5 9 8.5;
9 8 8.5 9 8;
10 9 10 8 9]
Doble Clic
>> data1=trabajador.horas
data1 =
9.0000
8.0000
9.0000
10.0000
8.5000
8.0000
8.0000
9.0000
10.0000
8.5000
8.5000
10.0000
9.0000 10.0000
9.0000 8.5000
9.0000 8.0000
8.0000 9.0000
VISUALIZAR UNA MATRIZ DEL CAMPO HORAS QUE SEAN IGUAL A 9 HORAS
TRABAJADAS
>> for i=1:4
for j=1:5
if trabajador.horas(i,j)==9
xx(i,j)=trabajador.horas(i,j);
end
end
end
>> xx
xx =
9
0
9
0
0
0
0
9
0
0
0
0
9
9
9
0
0
0
0
9
OTROS EJEMPLOS:
>> fieldnames(Agenda)
ans =
'nombre'
'profesion'
'contactos'
>> fieldnames(trabajador)
ans =
'nombre'
'salario'
'horas'
>> isfield(Agenda,'profesion')
ans =
1
>> isstruct(Agenda)
ans =
1
>> Nota=struct('exa1',10,'exa2',12,'susti',11','condicion','Aprobo')
Nota =
exa1: 10
exa2: 12
susti: 11
condicion: 'Aprobo'
>> rmfield(Nota,'condicion')
ans =
exa1: 10
exa2: 12
susti: 11
>> getfield(Nota,'exa1')
ans =
10
OTRO EJEMPLO
>> HM(:,:,1) = [1 2 3; 4 5 6]; % definimos la primera capa
>> HM(:,:,2) = [7 8 9; 10 11 12] % definimos la segunda capa
HM(:,:,1) =
1 2 3
4 5 6
HM(:,:,2) =
7 8 9
10 11 12
>> BB=randn(2,3,2)
BB(:,:,1) =
0.5377 -2.2588 0.3188
1.8339 0.8622 -1.3077
BB(:,:,2) =
-0.4336 3.5784 -1.3499
0.3426 2.7694 3.0349
>> cat(2,A,B)
ans =
>> B
B=
1
1
>> cat(3,A,B)
1
1
1
1
>> cat(1,A,B)
0
0
0
0
0
0
ans(:,:,1) =
0
0
0
0
0
0
ans =
0
0
1
1
0
0
1
1
0
0
1
1
ans(:,:,2) =
1
1
1
1
1
1
1
1
1
1
1
1
>> size(HM)
ans =
2 3 2
>> size(BB)
ans =
2 3 2
>> ndims(BB)
ans =
3
>> ndims(A)
ans =
2
POLINOMIOS
>> a=[3,-0.5,0,1,-5.2]
a=
3.0000 -0.5000
>> x=1;
>> f=polyval(a,x)
f=
-1.7000
0 1.0000 -5.2000
>> x=0:5/200:5;
>> a=[-1 0 3 -2.5 0 -2.5];
>> g=polyval(a,x);
>> g
ans =
1.0e+003 *
-0.0025
-0.0025
-0.0025
-0.0025
.
.
>> plot(x,g),title('FUNCION POLINOMICA')
RACES
Un polinomio se representa por un vector fila con sus coeficientes en orden descendiente,
no debemos olvidar colocar los trminos con coeficiente nulo.
>> poly (ans) % devuelve el polinomio generado por esas cuatro races
ans =
1.0000 -9.0000 13.0000 9.0000 -14.0000
OTRAS FUNCIONES
x=0:pi/20:2*pi;
y1=sin(x);
y2=exp(x);
plot(x,y1,x,y2)
title('Ejes Y con escala
Sencilla')
xlabel('Angulo')
Observamos en la grafica que sen(x) parece que corre en linea
recta a lo largo de x=0, esto es debido a la escala.
Funcin PLOTYY
Esta funcion le permite crear una grafica con dos ejes Y; el de
la izquierda para el primer conjunto de pares ordenados y el de
la derecha para el segundo conjunto de pares ordenados.
clear all
clc
x=0:pi/20:2*pi;
y1=sin(x);
y2=exp(x);
plotyy(x,y1,x,y2)
title('Dos Ejes Y escalados')
xlabel('Angulo')
INTERPOLACIN
INTERPOLACION LINEAL
>> y1=interp1(x,y,2.6)
y1 =
64.8000
>> y2=interp1(x,y,4.9)
y2 =
106.7000
>>
>>
>>
>>
x(:,1)=(0:5)';
y(:,1)=[0 20 60 68 77 110]';
y(:,2)=[0 25 62 67 82 103]';
y(:,3)=[0 52 90 91 93 96]';
>> temps=interp1(x,y,2.6)
temps =
64.8000 65.0000 90.6000
>> x=0:5;
>> y=[0 20 60 68 77 110];
>> temp=interp1(x,y,2.6,'spline')
temp =
67.3013
clear all
clc
x=[1:1:20];
y=[-0.23,2,6,12.1,25.8,18,4,-11,-20,-8,0.026,11,14,-0.47,-15,-35,-25,-10,0,26];
n=8;
c1=polyfit(x,y,n);
c1_val=polyval(c1,x);
plot(x,y,'ro',x,c1_val,'b-')
ylabel('VALORES DE (y)')
xlabel('VALORES DE (X)')
clc
close
clear
x=1:2.35:15; % GENERACIN DE LA VARIABLE MONTONA, UNIFORM
% ESPACIADA
y=4.25+x.^(.2+0.0005.*x);
m=[x',y'];
xi=5.0;
yi=4.25+xi.^(.2+0.0005.*xi);
disp('SE DISPONE DE UNA TABLA CON VALORES DE (X) y DE (Y)')
disp('SE DESEA CONOCER EL VALOR DE (Y) PARA (X=5.0)')
disp(' TABLA DE VALORES')
disp('__________________ ')
disp(' ')
POR EL
disp(' X
Y ')
disp('_________________ ')
disp(m)
disp(' ')
input('PRESIONAR enter PARA CONTINUAR')
disp(' ')
disp(' ')
disp('SE UTILIZAR EL MTODO GRFICO APROXIMADO,')
disp('PARA ELLO SE GRAFICAN LOS VALORES DE LA TABLA.')
disp('LUEGO,CON AYUDA DEL BOTN DE AMPLIACIN, (zoom in)')
disp('EN LA BARRA DE BOTONES,DE LA VENTANA DE LA FIGURA,')
disp('SE AMPLIFICA LA GRFICA')
disp('COLOCANDO EL PUNTERO DEL RATN,EN UN PUNTO SOBRE, ')
disp('LA CURVA,CORRESPONDIENTE AL VALOR DE X=5.0,')
disp('Y PRESIONANDO EL BOTN DE LA IZQUIERDA,DEL RATN ')
disp('TANTAS VECES COMO SE QUIERA AMPLIFICAR LA GRAFICA')
disp('AL FINAL,SE PUEDE LEER EL CORRESPONDIENTE VALOR DE (Y)')
disp(' ')
disp('PARA TENER IDEA DEL ERROR QUE SE COMETE CON ESTE MTODO')
disp('SE INDICAR A CONTINUACIN EL VALOR VERDADERO DE (Y)
PARA')
disp('(X=5.0)')
fprintf('PARA X=5.0 EL VALOR DE Y=%2.4f',yi)
disp(' ')
disp(' ')
disp('PARA TRABAJAR CON LA GRFICA, PULSE enter')
input('')
plot(x,y,'ro',x,y,'b-')
ylabel('VALORES DE Y ')
xlabel('VALORES DE X ')
title('GRFICA DE Y versus X, PARA X=5.0 VALOR VERDADERO DE
Y=5.6353 ')
grid on