SlideShare una empresa de Scribd logo
Operadores relacionales y lógicos
Algunos ejemplos adicionales con la matriz A de mas
arriba
A=[1 2;0 3];
A
isfinite(A)
isvector(A) %A no es vector ya que posee filas y columnas y eso es una matriz
Esto lo puedo hacer en el script como esta arriba o lo puedo realizar en el comando de Windows.
>>
>>B = 1:3 %este si es un vector
isvector(B)
Además una condición puede constar de una o mas operaciones relacionales. Estas
normalmente están concatenadas con expresiones lógicas cuya verdad o falsedad sigue las
leyes de la lógica formal. Los operadores lógicos de MATLAB son los siguientes:
Algunos ejemplos
>> x=[-1 1 1]; y=[ 1 2 -3];
>> x>0, y>0 %aquí compara los valores del vector si son mayor a 0 si no son asi asigna el valor 0 como quedo abajo
X y
>> x>0 & y>0 %aquí hace un comparación y acuérdense que & es que ambos deben ser verdadero por eso en
la posición 1 y 3 los valores son 0
>> x>0 | y>0 % como bien se sabe o con uno de los dos que sea positivo el valor de retorno es 1
MÁS COMANDOS DE PROGRAMACIÓN
Funciones
Estamos acostumbrados a trabajar con funciones del tipo y=f(x) donde f(x) es una expresión
matemática en términos de la variable x. Se calcula un valor de y (salida) cuando se
proporciona un valor de x (entrada) en la expresión. MATLAB define muchas funciones
como sin(x), sqrt(x), etc.
Podemos definir nuestras propias funciones guardarlas en un fichero y usarlas de un modo
semejante a las funciones predefinidas. En muchos casos las funciones son los componentes
básicos dentro de un programa de ordenador. Habitualmente, un programa se subdivide en
tareas y cada una de ellas es llevada a cabo por una función, a esta forma de resolver los
problemas se denomina programación estructurada.
La principal ventaja de las funciones es la posibilidad de reutilizar el código en otros programas
distintos al cual fueron definidas.
La entrada y la salida puede ser una o varias variables, cada una de ellas puede ser un escalar,
un vector o una matriz de cualquier tamaño.
Definición de una función
Las funciones se crean del mismo modo que un script seleccionado en el
menú File/New/Function y se guardan en un fichero que tiene el mismo nombre que la
función y extensión .m
La primera línea en el editor es la definición de la función que comienza con la palabra clave function
nombre_funcion, es el nombre significativo que se le asigna a la función y coincide con el
nombre del fichero de extensión .m en el que se guarda el código de dicha función. Las
reglas para nombrar un función son las mismas que para las variables, los nombres no
deben de incluir espacios, ni se pueden utilizar plabras reservadas por MATLAB.
variables_entrada, es el conjunto de parámetros que se le pasa a la función. Los nombres de
las variables van entre paréntesis y separadas por coma.
variabales_salida, es el valor o conjunto de valores de las variables devueltos por la función.
Las variables de salida van después de la palabra reservada function entre corchetes
cuadrados y separados por comas si hay varios.
sentencias, líneas de código que tomando los valores de los parámetros de entrada calculan
mediante expresiones los valores que devuelve la función.
end, marca el final de la función es opcional (salvo en las funciones anidadas) pero es
conveniente acostumbrarse a ponerlo al finalizar la función.
Ejemplos
Suma de dos números
Empezaremos por una función suma que realiza la siguiente tarea, suma de dos números x e y y devuelve la suma z=x+y
Definición de la función
function [z] = suma(x,y)
%Esta función suma dos números x e y
%y devuelve el resultado de la suma en z
z=x+y; %efectúa la suma
end
Llamada a la función
La llamada a la función se puede hacer desde la ventana de comandos
>> suma(2,3)
ans = 5
Otro ejemplo
function [x,v] = caida_libre(t)
v=40-10*t;
x=200+40*t-5*t^2;
end
%lo mismo lo gurdamos como caida_libre.m
En la ventana de comandos se llama a esta función caida_libre, pasándole un
tiempo t=2 s, del siguiente modo
>> [pos,vel]=caida_libre(2) % solo que aquí acuérdense que la varible necesita dos valores por eso
pos, vel
ERROR
Este comando tiene la estructura: “error( ‘mensaje’ )” dentro de una función o un archivo de comandos, aborta la
ejecución y despliega el mensaje declarado en el argumento, terminando el programa y retornando el control al
teclado.
Ejercicio 1:
Cree el archivo de función “produdcruz.m” con las siguientes líneas de comandos:
function c = produdcruz(a,b);
% prodcruz(a,b) calcula el producto cruz a x b
if nargin~=2 % Si no hay dos argumentos de entrada
error( 'Lo siento, necesita dos vectores de entrada' )
end
disp ( 'Otros cálculos' )
end
En la ventana de comandos si ingresamos datos sale disp. En el segundo sale la función error.
>> produdcruz(3,3)
Otros cálculos
>> produdcruz
Error using produdcruz (line 5)
Lo siento, necesita dos vectores de entrada
RETURN
El comando simplemente devuelve el control al que invoca la función.
function barranimada(t0,tf,x0);
% barrabunada crea una animación de péndulo con una barradisp
( '¿Quiere ver el diagrama de fase?' )
ans=input( 'Presione 1 para SI, 0 para NO' )
if ans==0 % Si la entrada es cero
return
else
disp( 'Despliega el diagrama de fase' ) % Programa para el
diagrama de fase
end
end
INPUT INTERACTIVO
Los comandos: “input”, “keyboard”, “menu” y pause pueden ser usados dentro
del archivo de comando o de función como una entrada interactiva.
Input
El comando “input( ‘instrucción’ )”, despliega el texto colocado dentro
del argumento y espera una entrada por parte del usuario desde el
teclado.
Ejemplos:
n=input( ‘Ingrese el número de repeticiones’ ). Pide al usuario el
número de repeticiones de un proceso y guarda la entrada en la
variable “n”.
mas=input( ‘Más simulaciones? S/N’ , ‘S’ ). Pide al usuario escribir
“S” para si y “N” para no, almacena la entrada como una cadena de
caracteres en la variable “mas”.
Keyboard
El comando “keyboard” dentro de un archivo de comandos o de función,
retorna el control al teclado en la línea de instrucciones donde el comando
es declarado. La ejecución del archivo es interrumpido. El símbolo de la
ventana de comandos cambia de “>>” a “k>>” que muestra el estado
especial. En este punto, usted puede revisar las variables ya calculadas,
cambiar sus valores, o ejecutar cualquier comando valido. El control es
retornado al archivo al escribir en la ventana de comandos “return” y luego
la tecla “enter”.
Esta función es útil para la depuración de archivos de comandos o de
función. Algunas veces, durante la ejecución de un archivo, usted podría
querer verificar algunos resultados intermedios, graficarlos, o si los
cálculos están dirigidos en la dirección correcta y luego dejar que la
ejecución del archivo continúe.
% ejemtecl: archivo de comandos para ejemplificar el
comando keyboard
A=ones(10) % Crea una matriz de 10 x 10 con valores 1 como
elementos
for k=1:10
disp(k) % Despliega el valor de k
A(:,k)=k*A(:,k); % Reemplaza la k-ésima columna de A
if k==5 % Cuando k = 5
keyboard % Retorna el control al teclado
end
end
Menu
El comando “menu(‘nombre_menu’, ‘opcion1’, ‘opcion2’, . . .)” crea un menú de pantalla con el “nombre_menu” y lista
las opciones del menú. El usuario puede seleccionar alguna de las opciones usando el ratón o la selección desde el
teclado. La utilización de este comando crea una atractiva ventana de menú con botones.
% Graficando un circulo
r=input('Introduzca el radio deseado');
theta=linspace(0,2*pi,100);
r=r*ones(size(theta)); % hace que r tenga el mismo tamaño de theta
coord=menu('Grafica del círculo', 'Cartesiana', 'Polar');
if coord==1 % Si la primera opción del menú es seleccionada
plot(r.*cos(theta),r.*sin(theta))
axis('square')
else %si la segunda opción del menú es seleccionada
polar(theta,r);
end
Pause
El comando “pause” detiene temporalmente el proceso en curso. Este comando puede ser utilizado de
manera opcional de una de las formas siguientes:
 pause Detiene el proceso en curso y espera a que el usuario de la señal para continuar.
Presionando cualquier tecla, se reinicia el funcionamiento del archivo.
 Pause(n) Detiene el proceso en curso, realizando una pausa de “n” segundos; luego de este
tiempo se reinicia la ejecución del archivo.
% ejemtecl: archivo de comandos para ejemplificar el comando keyboard
A=ones(10) % Crea una matriz de 10 x 10 con valores 1 como elementos
for k=1:10
disp(k) % Despliega el valor de k
A(:,k)=k*A(:,k); % Reemplaza la k-ésima columna de A
if k==5 % Cuando k = 5
pause(2) % Retorna el control al teclado a los 2 segundos si solo se
coloca pause al dar enter pasa
end
end
Recursion
El lenguaje de programación MatLab soporta recursión, es decir, una función puede llamarse a sí mismo durante su
ejecución. Así algoritmos recursivos se puede aplicar directamente en MATLAB.
El cálculo del factorial. Observe como se capturan los casos particulares para el
0 y el 1. Y el caso de entrada inválida, n<0.
% retorna el factorial del número dado
function [] = factorial(n)
if n < 0
disp('Ingrese un número positivo !')
return;
end;
if (n==0 | n==1)
disp('El factorial de ');
disp(n);
disp('es 1');
return;
end;
mult = 1;
for i = 1:n;
mult = mult * i;
end;
disp('El factorial de '); disp(n); disp('es: ');
disp(mult);
end
Input / output
MatLab soporta muchos estándares del lenguaje C como archivos con funciones de entrada / salida para lectura
y escritura en formatos binarios y archivos de texto. Entre las funciones soportadas se incluyen:
fopen Abre un archivo existente o crea un nuevo archivo
fclose Cierra un archivo abierto
fread Lee datos binario de un archivo
fwrite Escribe datos binarios en un archivo
fscanf Lee datos formateados de un archivo
fprintf Escribe datos formateados a un archivo
sscanf Lee cadenas de caracteres con formato
especificado
sprintf Escribe datos en un formato de cadena de
caracteres
fgets Lee una línea desde un archivo, descartando una
nueva línea de caracteres
fgetl Lee una línea desde un archivo , incluyendo una
nueva línea de carateres
frewind reinicia un archivo
fseek establece el indicador de posición de archivo
ftell Obtiene el indicador de posición del archivo en curso
ferror Consulta el estado de error de un archivo de
entrada / salida
% TEMPTABLA – genera y escribe una tabla de temperaturas
% Archivo de comandos que genera una tabla de temperaturas Fahrenheit – Celsius
% La tabla está escrita en un archivo llamado ‘temperatura.tabla’
% ------------------------------------------------------------------------------------
F= -40:5:100; % Asigna F=[-40 -35 -30 … 100]
C=(F - 32)*5/9; % Calcula los valores correspondientes en C
t=[F;C] % Crea una matriz t de dos filas
fid=fopen( 'temperatura.tabla', 'w'); % Aquí crea el archivo
temperatura con los valores de la matriz de arriba
fprintf(fid,' Tabla de temperaturasn ');
fprintf(fid,' ------------------------ -n ');
fprintf(fid,'Fahrenheit Celsius n');
fprintf(fid, ' %4i %8.2fn',t,'n');
fclose(fid)
En el archivo anterior, el primer comando E/S “fopen” abre un archivo “temperatura.tabla” en el modo de
escritura (esto es especificado por “w” dentro del argumento del comando) y asigna el archivo identificador a
la variable “fid”. El siguiente comando “fprint” utiliza “fid” para escribir las cadenas de caracteres y los datos
en ese archivo. Los datos son formateados de acuerdo a las especificaciones de las etiquetas en el
argumento de “fprint”. La instrucción “n” establece una nueva línea; “4i” representa un campo entero de
ancho para 4 dígitos; mientras que “%8.2f” representa un campo de punto fijo de ancho para 8 dígitos
enteros y dos dígitos después del punto decimal.
Observe que los datos de la matriz “t” tiene dos filas, mientras que en el archivo de salida muestra la matriz
en dos columnas. Esto es porque “t” es leído por columnas y luego escrito en la forma especificado (dos
valores en una fila).
Ejemplo de uso de while con break (corta el bucle):
nro = input('Ingrese un número positivo: ');
i=0;
while i<=nro
disp(i);
i=i+1;
if i==2
break;
end;
end
http://www.mathworks.com/help/matlab/functionlist.ht
ml

Más contenido relacionado

La actualidad más candente

FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
flaquita_dany
 
Metodos en java
Metodos en javaMetodos en java
Metodos en javaaleja0940
 
Funcion printf
Funcion printfFuncion printf
Ejercicios tema4 parte1_soluciones (2)
Ejercicios tema4 parte1_soluciones (2)Ejercicios tema4 parte1_soluciones (2)
Ejercicios tema4 parte1_soluciones (2)
Gilberto Cruz Ruiz
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
Fernando Solis
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
Eliezer Cordova
 
Programa para calcular valores de resistencias
Programa para calcular valores de resistenciasPrograma para calcular valores de resistencias
Programa para calcular valores de resistenciasUlises Hernandez
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
LenHugo
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
compumet sac
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
ANDRES FELIPE CRUZ ERAZO
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
Diego Santimateo
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
Idalia Tristan
 
Solución de Problemas de Ingeniería con MATLAB
Solución de Problemas de Ingeniería con MATLABSolución de Problemas de Ingeniería con MATLAB
Solución de Problemas de Ingeniería con MATLAB
Joanny Ibarbia Pardo
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
Richard Robalino
 

La actualidad más candente (20)

Escuela
EscuelaEscuela
Escuela
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Metodos en java
Metodos en javaMetodos en java
Metodos en java
 
Funcion printf
Funcion printfFuncion printf
Funcion printf
 
Ejercicios tema4 parte1_soluciones (2)
Ejercicios tema4 parte1_soluciones (2)Ejercicios tema4 parte1_soluciones (2)
Ejercicios tema4 parte1_soluciones (2)
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
Programa para calcular valores de resistencias
Programa para calcular valores de resistenciasPrograma para calcular valores de resistencias
Programa para calcular valores de resistencias
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Apuntes scilab
Apuntes scilabApuntes scilab
Apuntes scilab
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Clase 6
Clase 6Clase 6
Clase 6
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
 
Solución de Problemas de Ingeniería con MATLAB
Solución de Problemas de Ingeniería con MATLABSolución de Problemas de Ingeniería con MATLAB
Solución de Problemas de Ingeniería con MATLAB
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
 

Destacado

Truly, Madly, Deeply Intro
Truly, Madly, Deeply IntroTruly, Madly, Deeply Intro
Truly, Madly, Deeply IntroMaira Cheeda
 
Tech Talk: Knowledge Management of the Future for ITSM
Tech Talk: Knowledge Management of the Future for ITSMTech Talk: Knowledge Management of the Future for ITSM
Tech Talk: Knowledge Management of the Future for ITSM
CA Technologies
 
844819974 x
844819974 x844819974 x
844819974 x
Martin Hernandez
 
Trabajo de investigacion secciones
Trabajo de investigacion seccionesTrabajo de investigacion secciones
Trabajo de investigacion secciones
Carloss Ivan
 
Presentaciòn: Modelo canvas
Presentaciòn: Modelo canvasPresentaciòn: Modelo canvas
Presentaciòn: Modelo canvas
FUMDIR
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
Mauro Pereira
 

Destacado (7)

Truly, Madly, Deeply Intro
Truly, Madly, Deeply IntroTruly, Madly, Deeply Intro
Truly, Madly, Deeply Intro
 
Tech Talk: Knowledge Management of the Future for ITSM
Tech Talk: Knowledge Management of the Future for ITSMTech Talk: Knowledge Management of the Future for ITSM
Tech Talk: Knowledge Management of the Future for ITSM
 
e-brochure
e-brochuree-brochure
e-brochure
 
844819974 x
844819974 x844819974 x
844819974 x
 
Trabajo de investigacion secciones
Trabajo de investigacion seccionesTrabajo de investigacion secciones
Trabajo de investigacion secciones
 
Presentaciòn: Modelo canvas
Presentaciòn: Modelo canvasPresentaciòn: Modelo canvas
Presentaciòn: Modelo canvas
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 

Similar a Clase 10

Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
SimonCaceres4
 
Clase 7
Clase 7Clase 7
Clase 7
esvin Rey
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
Gabriel Romero
 
Laboratorio1 -Teoría de los circuitos: Uso de Matlab
Laboratorio1 -Teoría de los circuitos: Uso de MatlabLaboratorio1 -Teoría de los circuitos: Uso de Matlab
Laboratorio1 -Teoría de los circuitos: Uso de Matlab
Gega Li
 
Intro_Matlab_1.pdf
Intro_Matlab_1.pdfIntro_Matlab_1.pdf
Intro_Matlab_1.pdf
MiguelBriones24
 
MN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdfMN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdf
JasonMoraMorales
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
Marc Llanos
 
Matlab
Matlab Matlab
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlabford81
 
Material de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación ComputacionalMaterial de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación Computacional
mnllorente
 
Curso de introduccion_al_matlab
Curso de introduccion_al_matlabCurso de introduccion_al_matlab
Curso de introduccion_al_matlabCORPOELEC
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
numpad
 
Matlab
MatlabMatlab
Matlabford81
 
Curso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.pptCurso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.ppt
angela80121
 

Similar a Clase 10 (20)

Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
 
Clase 7
Clase 7Clase 7
Clase 7
 
Escuela
EscuelaEscuela
Escuela
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
cap7.pdf
cap7.pdfcap7.pdf
cap7.pdf
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Laboratorio1 -Teoría de los circuitos: Uso de Matlab
Laboratorio1 -Teoría de los circuitos: Uso de MatlabLaboratorio1 -Teoría de los circuitos: Uso de Matlab
Laboratorio1 -Teoría de los circuitos: Uso de Matlab
 
Cuaderno 1
Cuaderno 1Cuaderno 1
Cuaderno 1
 
Intro_Matlab_1.pdf
Intro_Matlab_1.pdfIntro_Matlab_1.pdf
Intro_Matlab_1.pdf
 
MN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdfMN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdf
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
Matlab
Matlab Matlab
Matlab
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 
Material de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación ComputacionalMaterial de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación Computacional
 
Curso de introduccion_al_matlab
Curso de introduccion_al_matlabCurso de introduccion_al_matlab
Curso de introduccion_al_matlab
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
Matlab
MatlabMatlab
Matlab
 
Curso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.pptCurso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.ppt
 
Algoritmos y programas ing civil
Algoritmos y programas ing civil Algoritmos y programas ing civil
Algoritmos y programas ing civil
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 

Más de esvin Rey

Clase 6
Clase 6Clase 6
Clase 6
esvin Rey
 
Clase 8
Clase 8Clase 8
Clase 8
esvin Rey
 
Clase 3 (1)
Clase 3 (1)Clase 3 (1)
Clase 3 (1)
esvin Rey
 
C05
C05C05
Clase 4
Clase 4Clase 4
Clase 4
esvin Rey
 
Clase 2 (2)
Clase 2 (2)Clase 2 (2)
Clase 2 (2)
esvin Rey
 

Más de esvin Rey (6)

Clase 6
Clase 6Clase 6
Clase 6
 
Clase 8
Clase 8Clase 8
Clase 8
 
Clase 3 (1)
Clase 3 (1)Clase 3 (1)
Clase 3 (1)
 
C05
C05C05
C05
 
Clase 4
Clase 4Clase 4
Clase 4
 
Clase 2 (2)
Clase 2 (2)Clase 2 (2)
Clase 2 (2)
 

Último

TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOSTAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
darlingreserved
 
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRALMODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
Fernando540828
 
Las plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etcLas plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etc
60475271
 
Solucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihiniSolucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihini
corderojulia187
 
QUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptxQUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptx
AnthonyFernandoArias
 
TRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epicoTRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epico
edepjuanorozco
 
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación-  PLATAFORMA VIRTUAL E-LEARNING .pptxPresentación-  PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
arelisguerra707
 

Último (7)

TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOSTAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
TAREA DE TECNOLOGIA DE LA FICHHA 1 Y DOS
 
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRALMODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
MODELO PEDAG DE LA FPI SENA PARA LA FORMACION PROFESIONAL E INTEGRAL
 
Las plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etcLas plantas ornamental su importancia, sus variedades etc
Las plantas ornamental su importancia, sus variedades etc
 
Solucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihiniSolucionario 5° P2P16.pptxihiuhiuhihihini
Solucionario 5° P2P16.pptxihiuhiuhihihini
 
QUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptxQUÉ ES ALARA proteccion rayografica.pptx
QUÉ ES ALARA proteccion rayografica.pptx
 
TRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epicoTRABAJO DE TECNOLOGIA increíble y próspero epico
TRABAJO DE TECNOLOGIA increíble y próspero epico
 
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación-  PLATAFORMA VIRTUAL E-LEARNING .pptxPresentación-  PLATAFORMA VIRTUAL E-LEARNING .pptx
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptx
 

Clase 10

  • 2. Algunos ejemplos adicionales con la matriz A de mas arriba A=[1 2;0 3]; A isfinite(A) isvector(A) %A no es vector ya que posee filas y columnas y eso es una matriz Esto lo puedo hacer en el script como esta arriba o lo puedo realizar en el comando de Windows. >> >>B = 1:3 %este si es un vector isvector(B)
  • 3. Además una condición puede constar de una o mas operaciones relacionales. Estas normalmente están concatenadas con expresiones lógicas cuya verdad o falsedad sigue las leyes de la lógica formal. Los operadores lógicos de MATLAB son los siguientes: Algunos ejemplos >> x=[-1 1 1]; y=[ 1 2 -3]; >> x>0, y>0 %aquí compara los valores del vector si son mayor a 0 si no son asi asigna el valor 0 como quedo abajo X y >> x>0 & y>0 %aquí hace un comparación y acuérdense que & es que ambos deben ser verdadero por eso en la posición 1 y 3 los valores son 0 >> x>0 | y>0 % como bien se sabe o con uno de los dos que sea positivo el valor de retorno es 1
  • 4. MÁS COMANDOS DE PROGRAMACIÓN Funciones Estamos acostumbrados a trabajar con funciones del tipo y=f(x) donde f(x) es una expresión matemática en términos de la variable x. Se calcula un valor de y (salida) cuando se proporciona un valor de x (entrada) en la expresión. MATLAB define muchas funciones como sin(x), sqrt(x), etc. Podemos definir nuestras propias funciones guardarlas en un fichero y usarlas de un modo semejante a las funciones predefinidas. En muchos casos las funciones son los componentes básicos dentro de un programa de ordenador. Habitualmente, un programa se subdivide en tareas y cada una de ellas es llevada a cabo por una función, a esta forma de resolver los problemas se denomina programación estructurada. La principal ventaja de las funciones es la posibilidad de reutilizar el código en otros programas distintos al cual fueron definidas. La entrada y la salida puede ser una o varias variables, cada una de ellas puede ser un escalar, un vector o una matriz de cualquier tamaño.
  • 5. Definición de una función Las funciones se crean del mismo modo que un script seleccionado en el menú File/New/Function y se guardan en un fichero que tiene el mismo nombre que la función y extensión .m
  • 6. La primera línea en el editor es la definición de la función que comienza con la palabra clave function nombre_funcion, es el nombre significativo que se le asigna a la función y coincide con el nombre del fichero de extensión .m en el que se guarda el código de dicha función. Las reglas para nombrar un función son las mismas que para las variables, los nombres no deben de incluir espacios, ni se pueden utilizar plabras reservadas por MATLAB. variables_entrada, es el conjunto de parámetros que se le pasa a la función. Los nombres de las variables van entre paréntesis y separadas por coma. variabales_salida, es el valor o conjunto de valores de las variables devueltos por la función. Las variables de salida van después de la palabra reservada function entre corchetes cuadrados y separados por comas si hay varios. sentencias, líneas de código que tomando los valores de los parámetros de entrada calculan mediante expresiones los valores que devuelve la función. end, marca el final de la función es opcional (salvo en las funciones anidadas) pero es conveniente acostumbrarse a ponerlo al finalizar la función.
  • 7. Ejemplos Suma de dos números Empezaremos por una función suma que realiza la siguiente tarea, suma de dos números x e y y devuelve la suma z=x+y Definición de la función function [z] = suma(x,y) %Esta función suma dos números x e y %y devuelve el resultado de la suma en z z=x+y; %efectúa la suma end
  • 8.
  • 9. Llamada a la función La llamada a la función se puede hacer desde la ventana de comandos >> suma(2,3) ans = 5 Otro ejemplo function [x,v] = caida_libre(t) v=40-10*t; x=200+40*t-5*t^2; end %lo mismo lo gurdamos como caida_libre.m En la ventana de comandos se llama a esta función caida_libre, pasándole un tiempo t=2 s, del siguiente modo >> [pos,vel]=caida_libre(2) % solo que aquí acuérdense que la varible necesita dos valores por eso pos, vel
  • 10. ERROR Este comando tiene la estructura: “error( ‘mensaje’ )” dentro de una función o un archivo de comandos, aborta la ejecución y despliega el mensaje declarado en el argumento, terminando el programa y retornando el control al teclado. Ejercicio 1: Cree el archivo de función “produdcruz.m” con las siguientes líneas de comandos: function c = produdcruz(a,b); % prodcruz(a,b) calcula el producto cruz a x b if nargin~=2 % Si no hay dos argumentos de entrada error( 'Lo siento, necesita dos vectores de entrada' ) end disp ( 'Otros cálculos' ) end En la ventana de comandos si ingresamos datos sale disp. En el segundo sale la función error. >> produdcruz(3,3) Otros cálculos >> produdcruz Error using produdcruz (line 5) Lo siento, necesita dos vectores de entrada
  • 11. RETURN El comando simplemente devuelve el control al que invoca la función. function barranimada(t0,tf,x0); % barrabunada crea una animación de péndulo con una barradisp ( '¿Quiere ver el diagrama de fase?' ) ans=input( 'Presione 1 para SI, 0 para NO' ) if ans==0 % Si la entrada es cero return else disp( 'Despliega el diagrama de fase' ) % Programa para el diagrama de fase end end
  • 12. INPUT INTERACTIVO Los comandos: “input”, “keyboard”, “menu” y pause pueden ser usados dentro del archivo de comando o de función como una entrada interactiva. Input El comando “input( ‘instrucción’ )”, despliega el texto colocado dentro del argumento y espera una entrada por parte del usuario desde el teclado. Ejemplos: n=input( ‘Ingrese el número de repeticiones’ ). Pide al usuario el número de repeticiones de un proceso y guarda la entrada en la variable “n”. mas=input( ‘Más simulaciones? S/N’ , ‘S’ ). Pide al usuario escribir “S” para si y “N” para no, almacena la entrada como una cadena de caracteres en la variable “mas”.
  • 13. Keyboard El comando “keyboard” dentro de un archivo de comandos o de función, retorna el control al teclado en la línea de instrucciones donde el comando es declarado. La ejecución del archivo es interrumpido. El símbolo de la ventana de comandos cambia de “>>” a “k>>” que muestra el estado especial. En este punto, usted puede revisar las variables ya calculadas, cambiar sus valores, o ejecutar cualquier comando valido. El control es retornado al archivo al escribir en la ventana de comandos “return” y luego la tecla “enter”. Esta función es útil para la depuración de archivos de comandos o de función. Algunas veces, durante la ejecución de un archivo, usted podría querer verificar algunos resultados intermedios, graficarlos, o si los cálculos están dirigidos en la dirección correcta y luego dejar que la ejecución del archivo continúe.
  • 14. % ejemtecl: archivo de comandos para ejemplificar el comando keyboard A=ones(10) % Crea una matriz de 10 x 10 con valores 1 como elementos for k=1:10 disp(k) % Despliega el valor de k A(:,k)=k*A(:,k); % Reemplaza la k-ésima columna de A if k==5 % Cuando k = 5 keyboard % Retorna el control al teclado end end
  • 15. Menu El comando “menu(‘nombre_menu’, ‘opcion1’, ‘opcion2’, . . .)” crea un menú de pantalla con el “nombre_menu” y lista las opciones del menú. El usuario puede seleccionar alguna de las opciones usando el ratón o la selección desde el teclado. La utilización de este comando crea una atractiva ventana de menú con botones. % Graficando un circulo r=input('Introduzca el radio deseado'); theta=linspace(0,2*pi,100); r=r*ones(size(theta)); % hace que r tenga el mismo tamaño de theta coord=menu('Grafica del círculo', 'Cartesiana', 'Polar'); if coord==1 % Si la primera opción del menú es seleccionada plot(r.*cos(theta),r.*sin(theta)) axis('square') else %si la segunda opción del menú es seleccionada polar(theta,r); end
  • 16. Pause El comando “pause” detiene temporalmente el proceso en curso. Este comando puede ser utilizado de manera opcional de una de las formas siguientes:  pause Detiene el proceso en curso y espera a que el usuario de la señal para continuar. Presionando cualquier tecla, se reinicia el funcionamiento del archivo.  Pause(n) Detiene el proceso en curso, realizando una pausa de “n” segundos; luego de este tiempo se reinicia la ejecución del archivo. % ejemtecl: archivo de comandos para ejemplificar el comando keyboard A=ones(10) % Crea una matriz de 10 x 10 con valores 1 como elementos for k=1:10 disp(k) % Despliega el valor de k A(:,k)=k*A(:,k); % Reemplaza la k-ésima columna de A if k==5 % Cuando k = 5 pause(2) % Retorna el control al teclado a los 2 segundos si solo se coloca pause al dar enter pasa end end
  • 17. Recursion El lenguaje de programación MatLab soporta recursión, es decir, una función puede llamarse a sí mismo durante su ejecución. Así algoritmos recursivos se puede aplicar directamente en MATLAB.
  • 18. El cálculo del factorial. Observe como se capturan los casos particulares para el 0 y el 1. Y el caso de entrada inválida, n<0. % retorna el factorial del número dado function [] = factorial(n) if n < 0 disp('Ingrese un número positivo !') return; end; if (n==0 | n==1) disp('El factorial de '); disp(n); disp('es 1'); return; end; mult = 1; for i = 1:n; mult = mult * i; end; disp('El factorial de '); disp(n); disp('es: '); disp(mult); end
  • 19. Input / output MatLab soporta muchos estándares del lenguaje C como archivos con funciones de entrada / salida para lectura y escritura en formatos binarios y archivos de texto. Entre las funciones soportadas se incluyen: fopen Abre un archivo existente o crea un nuevo archivo fclose Cierra un archivo abierto fread Lee datos binario de un archivo fwrite Escribe datos binarios en un archivo fscanf Lee datos formateados de un archivo fprintf Escribe datos formateados a un archivo sscanf Lee cadenas de caracteres con formato especificado sprintf Escribe datos en un formato de cadena de caracteres fgets Lee una línea desde un archivo, descartando una nueva línea de caracteres fgetl Lee una línea desde un archivo , incluyendo una nueva línea de carateres frewind reinicia un archivo fseek establece el indicador de posición de archivo ftell Obtiene el indicador de posición del archivo en curso ferror Consulta el estado de error de un archivo de entrada / salida
  • 20. % TEMPTABLA – genera y escribe una tabla de temperaturas % Archivo de comandos que genera una tabla de temperaturas Fahrenheit – Celsius % La tabla está escrita en un archivo llamado ‘temperatura.tabla’ % ------------------------------------------------------------------------------------ F= -40:5:100; % Asigna F=[-40 -35 -30 … 100] C=(F - 32)*5/9; % Calcula los valores correspondientes en C t=[F;C] % Crea una matriz t de dos filas fid=fopen( 'temperatura.tabla', 'w'); % Aquí crea el archivo temperatura con los valores de la matriz de arriba fprintf(fid,' Tabla de temperaturasn '); fprintf(fid,' ------------------------ -n '); fprintf(fid,'Fahrenheit Celsius n'); fprintf(fid, ' %4i %8.2fn',t,'n'); fclose(fid)
  • 21. En el archivo anterior, el primer comando E/S “fopen” abre un archivo “temperatura.tabla” en el modo de escritura (esto es especificado por “w” dentro del argumento del comando) y asigna el archivo identificador a la variable “fid”. El siguiente comando “fprint” utiliza “fid” para escribir las cadenas de caracteres y los datos en ese archivo. Los datos son formateados de acuerdo a las especificaciones de las etiquetas en el argumento de “fprint”. La instrucción “n” establece una nueva línea; “4i” representa un campo entero de ancho para 4 dígitos; mientras que “%8.2f” representa un campo de punto fijo de ancho para 8 dígitos enteros y dos dígitos después del punto decimal. Observe que los datos de la matriz “t” tiene dos filas, mientras que en el archivo de salida muestra la matriz en dos columnas. Esto es porque “t” es leído por columnas y luego escrito en la forma especificado (dos valores en una fila).
  • 22. Ejemplo de uso de while con break (corta el bucle): nro = input('Ingrese un número positivo: '); i=0; while i<=nro disp(i); i=i+1; if i==2 break; end; end