Funciones y comparación de cadenas de caracteres

Este es un código que muestra como se pueden comparar cadenas caracteres. Es en respuesta a la duda (que se comento en clase) de un ejercicio para la creación de funciones.

Por favor, prueben la función e interpreten el proceso de trabajo, usen los comando tic toc de Matlab para ver cuanto tiempo tarda en ejecutarse, y si pueden modifiquen para disminuir este tiempo.

Y si tienen dudas, pueden dejar un comentario en esta entrada.

%% Esta fucion permite calcular entre la funcion seno y coseno.

% Acepta escalares y matrices
% Si se escribe mal la palabra se termina el programa

function y = trigos(cadena)
display('¿Qué función deseas usar?'); % estos son mensajes para orientar al usuario
display(' ');
display('Escribe la palabra <> si quieres usar la función coseno.');
display('o escribe la palabra <> si quieres usar la función seno');
palabra = input('Cualquier otra palabra te saca de esta funcion \n','s'); % aqui se almacena la cadena

 if strcmp(palabra, 'coseno') == 1 ; % strcmp compara las cadenas, si son iguales da un valor de 1
         y = cos(cadena);
 elseif strcmp(palabra, 'seno') == 1 ;
         y = sin(cadena);
 else strcmp(palabra, 'coseno') || strcmp(palabra, 'seno') == 0 ; % esta parte permite versatilidad en las salidas nulas
         display('la función no esta declarada. Adios :)'); % se le orienta al usuario que sucede en el programa
 end

% fin de la funcion
%%%

Cómo hacer funciones escalares y vectoriales en Matlab (0017)



Resumen
Mostramos los fundamentos de cómo hacer fuciones en Matlab, las cuales pueden trabajar con escalares, vectores y matrices.

Empleamos la palabra reservada de Matlab function para crear una función

Preguntas para pensar 

1) En que casos es recomendable utilizar funciones en Matlab
2) ¿Se debería escribir primero un guion antes de hacer una función en Matlab?

Ejercicios

1) Escribe un archivo .m de la función, fun_es(x), que calcule la siguiente función:


El argumento debe aceptar tanto un escalar como un vector. Pruebe su función tecleando en la ventana de comandos de Matlab: fun_es(3) y fun_es([1 2 3])

2) Repita la tarea del ejercicio 1) para la función


Denote la función por fun_lg(x).

3) Se supone que el lector ya creó las funciones fun_es y fun_lg de los problemas 1) y 2). Ahora, cree una función f_es(x) que:


pregunte el nombre de la función que se desea evaluar,
 permita al usuario teclear el nombre de la función,
 evalúe la función con el comando de Matlab feval y devuelva los valores funcionales y
se detenga si la fucnion indicada por el usuario no es fun_es ni fun_lg.

Pruebe su f_es calculando fun_es(3) y fun_lg(3).

Tres ejercicios sobre creación de funciones en Matlab

Estos ejercicios son para comprobar nuestro conocimiento en la creación básica de funciones.

1) Escribe un archivo .m de la función, fun_es(x), que calcule la siguiente función:


El argumento debe aceptar tanto un escalar como un vector. Pruebe su función tecleando en la ventana de comandos de Matlab: fun_es(3) y fun_es([1 2 3])

2) Repita la tarea del ejercicio 1) para la función


Denote la función por fun_lg(x).

3) Se supone que el lector ya creó las funciones fun_es y fun_lg de los problemas 1) y 2). Ahora, cree una función f_es(x) que:


pregunte el nombre de la función que se desea evaluar,
 permita al usuario teclear el nombre de la función,
 evalúe la función con el comando de Matlab feval y devuelva los valores funcionales y
se detenga si la fucnion indicada por el usuario no es fun_es ni fun_lg.

Pruebe su f_es calculando fun_es(3) y fun_lg(3).

Cómo poner un cross-hair (cursor de línea) en las figuras de Matlab

Gráfica con tres cursores de linea
Cuando requerimos explorar una gráfica es una gran ayuda contar con un cursor de línea (cross-hair) vertical o horizontal.
graphics.cursorbar, que es un objeto interno de Matlab, es una solución para tener tal aditamento en nuestras gráficas.

Se inicializa el graphics.cursorbar al sustituir un eje (lo que no es muy útil), o graficando una línea (que es más inteligente). Este objeto se puede personalizar utilizando propiedades como BottomMarker, TopMarker, CursorLineColor, CursorLineStyle, CursorLineWidth, TargetMarkerSize, TargetMarkerStyle, ShowText, Orientation, Position (la cual es una propiedad oculta), entre otras.

Ahh!, por supuesto, también están presentes las propiedades regulares (UserData, Visibility, Parent etc.).
Una vez que el cursor de línea es creado, este puede ser movido por medio del cursor del raton, como el código muestra:

%%%% inicia código
x=0:.01:7; y=plot(x,sin(x));
hCursorbar = graphics.cursorbar(y); drawnow
hCursorbar.CursorLineColor = [1,.2,.3]; % default=[0,0,0]='k'
hCursorbar.CursorLineStyle = ':'; % default='-'
hCursorbar.CursorLineWidth = 1; % default=1
hCursorbar.Orientation = 'vertical'; % =default
hCursorbar.TargetMarkerSize = 10; % default=8
hCursorbar.TargetMarkerStyle = 'o'; % default='s' (square)
%%%% fin del código

Ahora bien, en muchas gráficas se puede desear tener dos o más cursores de línea. Por ejemplo una horizontal y otra vertical (x,y), o bien dos verticales (x_1, x_2); esto se puede hacer en base del sig. código:

x=0:.01:7; y=plot(x,sin(x));
hCursorbar1 = graphics.cursorbar(y);
hCursorbar2 = graphics.cursorbar(y);
% ahora a personalizar la apariencia de hCursorbar1 y a hCursorbar2

Preguntas para pensar
1) Menciona dos aplicaciones especificas y concetras donde es importante tener esta aditamento gráfico


Ejercicios
3) Crea un imagen con dos subgráficas donde esten contenidas dos sendos cursores en linea. Es decir en total tendremos cuatro cursores de linea.
4) En una interface de usuario con gráfica introduce estos cursores de linea.

Primeras actividades a realizar antes del 14 de agosto

FOTO:
WWW.SHUTTERSOTCK.COM/THOMAS M PERKINS
Estas son las primeras actividades que deben realizarar antes de la siguiente clase presencial.

Recuerden que estos temas serán parte de la primera evaluación que realizaremos la siguiente semana. En caso tener alguna duda, dejen un comentario en este post.


2. Observen y realicen TODOS los ejercicios de los siguientes posts, que tratan sobre operaciones básicas en Matlab
  1. Cómo escribir operaciones básicas en Matlab (0001)
  2. Cómo escribir fórmulas básicas en Matlab (0002)
  3. Cómo escribir matrices en Matlab (0003)
  4. Matrices como variables en Matlab (0004)
  5. Suma de vectores y matrices en Matlab (0005)
  6. Multiplicación de matrices (0006)
  7. División entrada a entrada y división de matrices en Matlab (0007)

¡Bienvenidos a su blog didáctico de programación en Matlab!

Este blog tiene la intención de apoyarte académicamente en la clase de programación en Matlab. Por ello es importante que realices las actividades online que a partir de este post se incluirán. Además del material adicional que te ayudara en la clase: videos, notas, calificaciones, hojas de cálculo para hacer trabajo colaborativo. Adicionalemte, en este blog encontraras fechas importantes para el curso, notas y otra información importante. Ciertamente, el blog es un medio de comunicación, por lo cual esperamos que tanto en la clase presencial como en este espacio participes con tus recomendaciones a material didáctico extra que puede ayudarnos a dar un mejor curso.
Recuerda el la clase la hacemos todos =) .
Bienvenido al curso y esperamos que aprendas muchas cosas nuevas, útiles y divertidas ^_^ .

Usos y abusos de la barra de espera de Matlab

La barra de espera de Matlab es un adorno. Le da la sensación al usuario que algo está sucediendo mientras espera que su programa se ejecute. Sin embargo, al ser un complemento que se ejecuta y despliega un gráfico, pues consume memoria de la computadora. Si se ejecuta el Profiler se puede observar cuanta memoria consume, gasto que es significativo en pequeños programas, y tal vez sea necesaria para programas elaborados y que sean para usuarios finales. El código de la barra de espera es:

h=waitbar(0,'Por favor, espere...');
FindelCiclo=4000;
for i=1:FindelCiclo
waitbar(i/FindelCiclo,h); % calculos
end
delete(h);

Preguntas para pensar 
1) Si los complementos en los programas de computo gastan memoria. ¿Por qué se utilizan?, ¿Se puede demostrar su efectividad o que mejoran la amigabilidad de un programa?

Ejercicios 
1) Introduce una barra de espera en un programa grande previamente elaborado, y utiliza los comandos tic toc para calcular la diferencia de tiempo antes y después de emplear la barra de espera.

Temas de este tutorial de Matlab


A manera de temario, he escrito de que tratan los primeros videos de este blog. Creo que puede ser útil para seguir un curso de programación en Matlab o bien para un autodidacta o entusiasta de este programa.

Material adicional
  1. Importando y manipulando datos entre Matlab y Excel (0016)
  2. Cómo hacer páginas html de los scripts de Matlab (0015)
  1. Cómo poner una linea de tendencia en Matlab (0014)
  2. Cómo variar los colores en una gráfica 3D (0013)
  3. Colocar muchas gráficas en una sola imagen (1) 
  4. Cómo hacer gráficas de funciones z(x,y) (0011)
  5. Cómo hacer gráficas parámetricas en el espacio con Matlab (0010)
  6. Cómo hacer graficas polares (0009)
  7. Cómo hace imagenes portables de las figuras (0019
  8. Cómo hacer la animación de una senoidal en función del tiempo (0012)
  9. Trazando gráficas como si fueran animaciones (0018)

Programación básica
  1. Cómo hacer funciones en Matlab (0017)
  2. Uso de estructuras selectivas de programación (próximamente)

Operaciones Básicas
  1. División entrada a entrada y división de matrices en Matlab (0007)
  2. Multiplicación de matrices (0006)
  3. Suma de vectores y matrices en Matlab (0005)
  4. Matrices como variables en Matlab (0004)
  5. Cómo escribir matrices en Matlab (0003)
  6. Cómo escribir fórmulas básicas en Matlab (0002)
  7. Cómo escribir operaciones básicas en Matlab (0001)

Importando y manipulando datos entre Matlab y Excel (0016)




Resumen
Se muestra cómo importar datos de Excel a Matlab, y como se pueden manipular datos de Excel desde Matlab.
Empleamos los comandos xlsread y xlswrite

Preguntas para pensar
1) ¿En qué casos es importante que un programa de computo sea flexible para que comparta datos con otros programas?
2) ¿Cuál es la importancia del código ASCII en el desarrollo de los programas de computo?

Ejercicios
1) Crea un libro de Excel que contenga una sola múltiples columnas, mínimo dos columnas. desde Matlab, manipula una de esas columnas.

Toma en cuanta que Matlab puede crear vectores fila o columna.

Cómo hacer páginas html de los scripts de Matlab (0015)



Resumen
Mostramos como hacer documentación para nuestros guiones/scripts de Matlab. Así, se obtiene por medio del comando help, de la ventana de comandos, una breve ayuda; pero además se crea una página html que se puede ver en el navegador, esta página puede presentar ecuaciones, imagenes, hipervinculos, crea una tabla de contendios, entre otras cosas.  

Preguntas para pensar
1) ¿Cuál es el beneficio para el usuario de que se tenga documentación en la ventana de comandos y además en una presentación tipo html?
2) ¿La documentación para un programador es diferente que la que necesita un usuario? 

Ejercicios
1) A uno de tus viejos programas de Matlab, añade comentarios, y usa la sintaxis adecuada para tener una ayuda lo más completa posible para que se despliegue en la ventana de comandos. A la vez, la información que se presnte en el navegador debe contener imagenes archivadas, hipervinculos, ejemplos del uso del programa.

Related Posts Plugin for WordPress, Blogger...