3. Giros de una matriz ??
flipud(A);fliplr(A);rot90(A,num);
Practica
X = 1 2 3 Resultado 3 2 1
456 654
B(:,2)=[]; Que hace ??
flipud(X); fliplr(X);
rot90(X,1);rot90(X,2);rot90(X,3)
CAPITULO - 2 3
4. Operaciones …
C=A’ ; D= A*B; E=B*A; F=inv(C);
G=C*F; H=C.*F ; Cual es la diferencia ??
CAPITULO - 2 4
5. Operaciones …
⎧2a − 3b − 3c + d = −1
⎪a − b + c = 1
⎪
⎨ [ A] ∗ [ x] = [b]
⎪− a + 2b − c − 2d = 0
⎪b − c + 3d = 4
⎩
[ x] = Inv([ A]) ∗ [b] = [ A] [b]
CAPITULO - 2 5
6. Repaso
Entorno de trabajo
Comandos básicos
Comandos de matrices
Crear matriz
Manipulación de matrices
Funciones con matrices
CAPITULO - 2 6
7. Agenda
Crear carpeta de trabajo
Operadores de relación
Operadores lógicos
Funciones de Fecha
Polinomios
Archivos *.m
Ejercicio del día
CAPITULO - 2 7
11. Practica …
A(2,2:3); A(3,:);
A(end,:); A(1:2,:);
A([1 3 4],:); sqrtm(A);
isequal(A,B)
Convertir los elementos múltiples de 2 del vector en -3
CAPITULO - 2 11
12. Fecha y Hora
clock : Año, mes, dia, hora, min, seg.
now : lo mismo pero en número
date ,datenum(clock): fechas
calendar(y,m) : calendario
n=datenum('09-Nov-2006'); ans=732990
n=datenum(2005,11,9); ans=732625
n=datenum(‘9.11.2005’,’dd.mm.yyyy’); ans=732625
calendar(2000,5)
CAPITULO - 2 12
13. Polinomios
p( x) : x − 8 x + 6 x − 10 = 0
4 2
q( x) : x + 5 x − 6 = 0
3
roots(p);
polyval(p,2);
conv(p,q);
Polyder(p);
CAPITULO - 2 13
14. Otras Funciones …
exist(‘var’): return 0 si no existe
isnan(A); si hay valores indeterminados
isinf(A);si hay valores infinitos
isempty(var); si la variable es nula
ischar(var); si es cadena
Prueba: Encontrar la posición en donde
existe un valor indeterminado en la matriz X
X=[1 2 3;NaN 2 inf]
CAPITULO - 2 14
17. EDITOR
Todo archivo *.m debe llevar el mismo nombre que el de la
función principal.
Ejemplos:
Archivo: programa01.m
function programa01
disp(‘Hola mundo’);
Archivo: programa02.m
function programa02(x,y)
z=x+y;
disp(‘La suma de ‘),disp(x),
disp(‘con’),disp(y),disp(‘es ’),disp(z);
A QUE SE LE LLAMA SCRIPT EN MATLAB ??
CAPITULO - 2 17
18. Importante
Los nombres de las funciones y variables deben de
comenzar con una letra mayúscula o minúscula y no
deberá contener símbolos especiales a excepción del _
que es valido siempre y cuando no este al inicio, la
misma regla se les aplica a los números.
Ejemplo:
Hola.m mi_primer_programa.m programa02.m
programa_02.m
CAPITULO - 2 18
19. Script --- Funciones
X=[inf NaN 1 2 3 5]
function f(X)
X(find(isnan(X)))= -3
Y=2*X;
X(find(isinf(X)))=-1
plot(X,Y);
Y=2*X
plot(X,Y);hold on
stem(X,Y);hold off aproxSeno.m
function [X Y Z] = Funcion(a,b,c,d)
practica02.m
X= 0:0.1:2*pi
CAPITULO - 2 19
20. Mis primeros programas
function programa03(t)
x=sin(t);
y=cos(t);
plot(x,y),title(‘función parametrizada’);
CAPITULO - 2 20
21. function z=programa04(n) ECO.m
echo on
clc;
x=rand(3,4);
y= x(abs(x)<0.4);
[fil,col]=find(abs(x)<n);
z=x(find(abs(x)<n));
disp('Matriz generada'); disp(x);
disp('valores que cumplen condición');
disp(z);
disp('ubicación en la matriz');
disp([fil,col]);
end % tresFuncion.m
CAPITULO - 2 21
26. Problema
Dos números son ingresados como parámetro de
una función y se desea saber cual de los dos es
mayor, realice una función que me permita saberlo.
Se desea saber si el argumento ingresado como
argumento es un escalar o un vector o una matriz .
Realice una función que me permita determinarlo.
CAPITULO - 2 26
27. Problema
Una pc, esta conectada a un sensor de temperatura,
para poder controlar un aire acondicionado de un
hospital, se desea saber que acción esta ejecutando el
computador dependiendo de la temperatura.
Temperatura Acción
60º o mayor Alarma, posible incendio
60º - 40º Bajar la temperatura
21º - 38º Temperatura normal
15º - 21 Demasiado frío
CAPITULO - 2 27
28. Condicional
if (Condicion) if (Condicion1)
Sentencias Sentencias
end elseif (Cond2)
Sentencias
elseif(Cond3)
if (Condicion)
…
Sentencias
elseif(Condn)
else
Sentencias
Sentencias
Else
end
Sentencias
end
CAPITULO - 2 28
29. Condicional
switch (Cond1)
case 1
Sent;
case 2
Sent;
case {3,4,5}
Sent;
otherwise
Sent;
end Practica05a.m
fact.m
CAPITULO - 2 29
30. Practica
Realizar una función que reciba los
operandos como parámetro y el operador
por teclado y muestre la respuesta.
try – catch ??
practica05.m
CAPITULO - 2 30
33. Lazos
while(cond) for i=ini:step:fin
sent; sent;
end end
continue
break
return funcontrol.m
fmovie.m
aproxseno.m
CAPITULO - 2
comparar.m 33
34. Como se representaría la siguiente función
⎧ x + 2; x ≤ −2
⎪
⎪( x + 1) − 1;−2 < x < −1
2
⎪ 3
fun( x) = ⎨ x ;−1 ≤ x ≤ 1
⎪− ( x − 1) 2 + 1;1 < x < 2
⎪
⎪ x − 2; otros
⎩
CAPITULO - 2 34
35. Practica
Escribir un programa que pida por línea de
comandos un entero (n) y luego calcule lo
siguiente.
1. Mientras el valor de n sea mayor que 1, cambiar el
entero por la mitad de su valor si el entero es par; si
es impar cambiarlo por tres veces su valor mas 1.
2. Repetir estas operaciones cíclicamente y obtener el
número de iteraciones hasta que el algoritmo se para
en 1.
Por ejemplo:
para n=10 la secuencia es 5, 16, 8, 4, 2 y 1;
entonces el número de iteraciones han sido 6
CAPITULO - 2 35
36. Tiro parabólico
Se desea observar la trayectoria de un
proyectil, el cual es lanzado con un velocidad
inicial Vo y un ángulo de inclinación β.
CAPITULO - 2 36
37. Operación con Bits
dec2bin(dec); Convierte un entero a
dec2bin(dec,N) binario.tiene que ser no
negativo menor a 2^52
bin2dec(bin) b es string
hex2dec(dec) Convierte decimal a
hexadecimal
dec2base(dec, bin); Convierte decimal a base
Dec2base(dec, bin, N) b, la base debe de estar
entre 2 -36
base2dec(str,base) Returna un numero
CAPITULO - 2 37
39. Problema
Una pc, esta conectada a un sensor de temperatura, por medio
del puerto serial cuya misión es controlar un aire acondicionado de
un hospital, se desea saber que acción esta ejecutando el
computador dependiendo de la temperatura. La temperatura se
ingresa en base 2
Temperatura Acción
60º o mayor Alarma, posible incendio
60º - 40º Bajar la temperatura
40º - 21º Temperatura normal
21º - menos Demasiado frio
CAPITULO - 2 39
41. Celda y Estructuras
Nombre completo
Nacionalidad
Documento de identidad
Tipo
Número
Fecha de expedición
Fecha de caducidad
Dirección de contacto
Números de teléfono
Número de la dirección de contacto
Teléfono móvil de empresa
Teléfono móvil personal
CAPITULO - 2 41
43. ESTRUCTURA
fieldnames(ST) : devuelve un vector de celdas con cadenas de
caracteres que recogen los nombres de los campos de una
estructura
isfield(ST,s) : permite saber si la cadena s es un campo de una
estructura ST
isstruct(ST) : permite saber si ST es o no una estructura
rmfield(ST,s): elimina el campo s de la estructura ST
getfield(ST,s): devuelve el valor del campo especificado. Si la
estructura es un array hay que pasarle los índices como cell
array (entre llaves {}) como segundo argumento.
setfield(ST,s,v): da el valor v al campo s de la estructura ST. Si
la estructura es un array, hay que pasarle los índices como cell
array (entre llaves {}) como segundo argumento
CAPITULO - 2 43
44. CELDAS
cell(m,n): crea un cell array vacío de m filas y n
columnas.
celldisp(ca): muestra el contenido de todas las
celdas de ca .
cellplot(ca): muestra una representación gráfica de
las distintas celdas.
iscell(ca): indica si ca es un vector de celdas .
num2cell(): convierte un array numérico en un cell
array .
cell2struct(): convierte un cell array en una
estructura. struct2cell() convierte una estructura en un
cell array.
CAPITULO - 2 44
47. syms
Con este comando lo que se hace establecer una
letra como un valor y así poder hacer sustitución
literal. Ej: syms x
F=2*x – 2 ; G=3 –x ; H=F*G;expand(H)
findsym(F);
% lo que hace es buscar en F la variable literal
N=3;
B=x.*((0:N)’*(0:N));
P1=expand(H);
factor(P1);
CAPITULO - 2 47
53. Otros Gráficos
bar() crea diagramas de barras
barh() diagramas de barras horizontales
bar3() diagramas de barras con aspecto 3-D
bar3h() diagramas de barras horizontales con aspecto 3-D
pie() gráficos con forma de “tarta”
pie3() gráficos con forma de “tarta” y aspecto 3-D
area() similar plot(), pero rellenando en ordenadas de 0 a y
stairs() función análoga a bar() sin líneas internas
errorbar() representa sobre una gráfica –mediante barras– valores de errores
compass() dibuja los elementos de un vector complejo como un conjunto de
vectores partiendo de un origen común
feather() dibuja los elementos de un vector complejo como un conjunto de
vectores partiendo de orígenes uniformemente espaciados sobre el eje de
abscisas
hist() dibuja histogramas de un vector
rose() histograma de ángulos (en radianes)
quiver() dibujo de campos vectoriales como conjunto de vectores
newplot2.m
CAPITULO - 2 53
54. Cadena de caracteres
double(c) : convierte en numeros cada carácter
Char(A) : convierte a carácter
Char(c1,c2) crea una cadena completando la menor con espacios
Deblank(c): elimina espacios en blanco al final
Ischar(c) : detecta si una variable es cadena
Isletter(c) : detecta si un carácter es una letra del alfabeto.
Strcmp(c1,c2) : compara cadena
Strcmpi(c1,c2) : no existe dif. Con mayusculas y minusculas
Strncmp(c1,c2,n) : compara los n primeros caracteres
S=[‘hola’,’ mundo’] : concadenación
CAPITULO - 2 54
55. Findstr(c1,c2) :devuelve un vector con todas
posiciones de las coincidencias.
Strrep(c1,c2,c3) : reemplaza c3 por c2 en c1
int2Str(c) : convierte un número a cadena.
Num2str(x,n): un numero real a cadena.
Str2double(str) : convierte una cadena a numero real.
Vc=cellstr(cc) : cadena a vector celda eliminando
espacios en blanco.
CAPITULO - 2 55