Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CYP
Computadores y Programacin
ndice
Introduccin
Tipos de datos
Creacin y asignacin de variuables
Reales
Enteros
Booleanos
Caracteres
Arrays
Strings
Registros (Estructuras)
Otros tipos
2
Captulo 4
CYP
Computadores y Programacin
Libros
CYP
Computadores y Programacin
Programacin
CYP
Computadores y Programacin
Enteros
Discretos
Booleano
Carcter
Enumerados
Simples
Reales
Tipos
Vectores (Arrays)
Compuestos
Cadenas (string)
Estructuras registros
CYP
Computadores y Programacin
a=127
a =127
class(a)
double
whos
a
1x1
double array
Se requiere hacer una conversin de tipo (casting) cuando se quieren tipos de datos
numricos que no sean el de defecto.
B = cast(A, newclass) : convertir A a la nueva clase newclass.
uint8
a=150
de asignaciones
Memoria
Se crea
dinmicamente
un objeto double
en una zona libre
de la memoria
2000
double
150
CYP
Computadores y Programacin
Semntica
a=150
de asignaciones
Memoria
2000
2000
double
150
a double
CYP
Computadores y Programacin
Semntica
de asignaciones
a=150
Memoria
a double
b int8
a
b
double
150
int8
34
CYP
Computadores y Programacin
Semntica
CYP
Computadores y Programacin
Semntica
de asignaciones
a=150
Memoria
b=int8(34)
a
b
c
c=b
a double
b int8
c int8
double
150
int8
34
int8
34
10
CYP
Computadores y Programacin
Semntica
de asignaciones
a=150
Memoria
b=int8(34)
a
b
c
c=b
b=a
double
150
a double
b double
c int8
int8
34
double
150
11
CYP
Computadores y Programacin
Creacin de datos
Puede realizarse de 2 formas distintas:
a) Implcita: al realizar una asignacin de un valor
x = 5123
y = true
% crea un logical
a = double(25)
a = logical(true)
b = int8(127)
% crea un double
% crea un logical
% crea un int8
b = double(b)
% reconvierte el int8 a double
Realmente lo que ocurre es:
Se crea un nuevo objeto double a partir del valor del int8
Se cambia la referencia de b al nuevo objeto double
Se elimina el objeto int8 al no tener referencias
12
CYP
Computadores y Programacin
Ojo
a=int16(34)
b=int8(20)
c=a+b
b=1
% b se transforma en double
a=b
a=a+1
a=a+1000
a=double(a)
d=int8(0)
d=d+a
d=d/7
13
CYP
Computadores y Programacin
ndice
Introduccin
Tipos de datos
Creacin y asignacin de variuables
Reales
Enteros
Booleanos
Caracteres
Arrays
Strings
Registros (Estructuras)
Otros tipos
14
CYP
Computadores y Programacin
Reales
single, double
single: reales en formato IEEE 754 de simple precisin. Abarcan el rango
[1.1755e-038, , 3.4028e+038]
double: reales en formato IEEE 754 de doble precisin. Abarcan el rango
[2.2251e-308, , 1.7977e+308]
Operadores: +, -, *, /, %, ^, etc.
Operaciones:
a = 127
b = single(X)
precisin
c = double(X)
precisin
15
CYP
Computadores y Programacin
Enteros
a = int8(X)
b = uint8(X)
16
CYP
Computadores y Programacin
Booleanos
logical
logical: representa una variable booleana cuyos posibles valores son {true,
false} que son sinnimos de {1, 0}.
Se puede generar un logical
a) Con una asignacin:
a=true; b=false
a=logical(327)
a=logical(0)
17
CYP
Computadores y Programacin
Booleanos
c) Como resultado de evaluar una expresin con operadores relacionales
entre valores de un tipo de datos en el que hay definida una relacin de
orden (==, =, >, >=, <, <=)
a=1; b=5;
x = (a == b)
%comparacion de igualdad.
xfalse
y = (a ~= b)
m = (a >= b)
%comparacion de desigualdad.
%comparacion >=.
ytrue
mfalse
n = (a > b)
%comparacion >
mfalse
l1 = (a>7) & (a ~= b)
0
l2 = (b<7) | (a<7) | (a ~= b)
1
l3 = ~(a<7)
0
18
CYP
Computadores y Programacin
Caracteres
Son variables cuyo valor son caracteres ASCII o UNICODE.
Matlab trabaja internamente con UNICODE ( 2 bytes).
x='A'
Y=char('a')
Z=char(0)
abs('A')
65
char(65) % retorna el carcter de un cdigo ascii (UNICODE)
A
abs('B')
66
abs('9')
57
ascii = char(reshape(32:127, 32, 3)')
19
No existen en Matlab
Son variables cuyos posibles valores se define explcitamente dando un
conjunto de valores
CYP
Computadores y Programacin
Enumerados
20
CYP
Computadores y Programacin
ndice
Introduccin
Tipos de datos
Creacin y asignacin de variuables
Reales
Enteros
Booleanos
Caracteres
Arrays
Strings
Registros (Estructuras)
Otros tipos
21
CYP
Computadores y Programacin
Arrays
Indexacin:
Consultar ayuda.
22
CYP
Computadores y Programacin
Arrays
dinmicos
vector=rand(1,3);
vector(5)=1
0.4057
matriz=[];
matriz=[matriz, 1, 2];
matriz=[matriz; [3,4]];
1
2
3
4
23
CYP
Computadores y Programacin
Cadenas
de caracteres
S = 'Una cadena'
U = native2unicode(S)
S = char(100)
% conversion a Unicode.
% conversion double char
d = double(S)
Indexacion:
S(2)
n
for i=0:9 nums(i+1)=setstr(abs('0')+i); end
nums 0123456789
Operadores: los mismos que para matrices (aunque no tengan mucha utilidad
con cadenas)
Operaciones: ischar, strcat, strcmp, strrep, length, str2num, etc..
24
CYP
Computadores y Programacin
Arrays de cadenas
Son arrays cuyos componentes son cadenas. Existen varias maneras de organizarlos:
b) Array vertical: solo es posible si todas las cadenas tienen la misma longitud.
dias=['Lunes
'Viernes
dias =
Lunes
Martes
Miercoles
Jueves
Viernes
Sabado
Domingo
; 'Martes
; 'Miercoles; 'Jueves
; 'Sabado
: 'Domingo
']
25
CYP
Computadores y Programacin
Arrays de cadenas
c) Cell Array: array de celdas heterogneas
dias =
Lunes
Martes
Miercoles
Jueves
Viernes
Sabado
Domingo
dias{2}
Martes
dias{3:4}
Miercoles
Jueves
26
Arrays
estudiante1{1,2}=int16(0338290);
%DNI: entero
estudiante1{1,3}='Primero';
%Curso: cadena
estudiante1{2,1}=[8 8.5];
CYP
Computadores y Programacin
Cell
27
Arrays
cellplot(estudiante1)
estudiante1{1,1}='Jordi Benavent';
estudiante1{1,2}=int16(0338290);
estudiante1{1,3}='Primero';
estudiante1{2,1}=[8 8.5];
estudiante1{2,2}=[5 7 7 6]
estudiante1{2,3}=rand(2,2)
CYP
Computadores y Programacin
Cell
28
CYP
Computadores y Programacin
Cell
Arrays
estudiante1(1,1)={'Jordi Benavent'};
estudiante1(1,2)={int16(0338290)};
estudiante1(1,3)={'Primero'};
% etc...
estudiante1={'Jordi Benavent'};
estudiante1=[estudiante1, {int16(0338290)}, {'Primero'}]
datos={estudiante1; estudiante2}
datos{1}{1,1}
'Jordi Benavent'
datos{2}
'Joan Blas'
[32767]
'Primero'
29
CYP
Computadores y Programacin
Registros (estructuras)
Structure: son estructuras de datos que permiten almacenar datos de diferente tipo
(como los cell array).
Se diferencian de los cell array porque se direccionan por el nombre del campo y no
por su ndice:
estudiante.Nombre='Jordi Benavent';
estudiante.DNI=int16(0338290);
estudiante.Curso='Primero';
estudiante.Notas=[8 8.5];
estudiante.NotasPrac=[5 7 7 6];
estudiante.Otros=rand(2,2);
estudiante=struct('Nombre','Jordi Benavent',
'DNI', int16(0338290),
'Curso','Primero',
'Notas',[8 8.5],
'NotasPrac',[5 7 7 6],
'Otros',rand(2,2))
30
CYP
Computadores y Programacin
Registros
(estructuras)
rmfield(estudiante,'Otros')
estudiante(2).Nombre='Joan Blas';
estudiante(2).DNI=int16(0111280);
estudiante(2).Curso='Primero';
estudiante(3).Nombre='Jose Garca';
estudiante(1).Notas=[Estudiante.Notas, 7.5]
mis_estudiantes=estudiante(1:2)
31
CYP
Computadores y Programacin
ndice
Introduccin
Tipos de datos
Creacin y asignacin de variuables
Reales
Enteros
Booleanos
Caracteres
Arrays
Strings
Registros (Estructuras)
Otros tipos
32
CYP
Computadores y Programacin
Dias
y fechas
Date String:
'24-Oct-2003 12:45:07'
Date Vector:
[2003
7.3188e+005
10
24
12
45
07]
Funciones
Funciones de conversin
33
CYP
Computadores y Programacin
Objetos simblicos
Los objetos simblicos permiten almacenar expresiones matemticas en forma
simblica, es decir, manejando varaibles (en vez de su valor) y utilizando los smbolos
*, /, ^.
sym x
syms yz
(x-y)*(x-y)^2
(x-y)^3
expand(z)
x^3-3*x^2*y+3*x*y^2-y^3
simplify((x^3-y^3)/(x-y))
x^2+x*y+y^2
34
complejos
c = complex(a,b)
d=sqrt(-1)
Funciones
real(c)
% parte real
imag(c)
% parte imaginaria
abs(a)
angle(a)
CYP
Computadores y Programacin
Nmeros
35