Variables
- Los nombres de las variables deben de comenzar con una letra y pueden tener hasta 31 caracteres, que pueden ser números, letras, guión (-), subrrayado(_)
- La variable a es distinta de la variable A, MATLAB diferencia entre mayúsculas y minúsculas
- Los nombres de las variables deben tener significado, primero se utilizan letras como a, x, y, pero cuando los programas son más complejos se llamarán posicion, velocidad, etc.
- Los nombres de las variables no pueden coincidir con las palabras reservadas por MATLAB: sin, sqrt exp, etc
- No están permitidos espacios entre caracteres
Para guardar el número 1.5 en un lugar de la memoria, lo asignamos a una variable denominada a, del siguiente modo:
>> a=1.5 a = 1.5000
En la misma línea se pueden asignar valores a más de una variable, separadas por comas , o punto y comas ;
>> a=6, b=34 a = 6 b = 34
Si no deseamos que se muestren en la ventana de comandos Command Window los valores de a y b escribiremos, alternativamente
>> a=6; b=36;
El punto y coma ; le indica a MATLAB que ejecute el comando pero que suprima la salida.
Las variables no solamente pueden guardar números, sino también pueden guardar cadenas de caracteres (strings), delimitados por comillas simples
>> str='hola' str = hola
Las variables actualmente en memoria a, b y str tal como aprecen en la ventana Workspace. Las variables en la ventana Workspace pueden ser editadas para cambiar el valor que guardan, pueden ser borradas con la tecla Suprimir, o seleccionado delete en el menú Edit.
Variables predefinidas
ans | Representa el valor calculado de una expresión y que se puede reutilizar en el siguiente cálculo |
---|---|
pi | Representa el número pi |
eps | Es la más pequeña diferencia entre dos números. Precisión de los números en coma-flotante |
i, j | o el número complejo 0+1.0000i |
realmax, realmin | Máximo y mínimo número en como flotante |
inf | Representa el infinito, por ejemplo cuando se divide un número entre cero, se muestra ∞ |
NaN | No es un número. Resultado de una expresión indefinida, por ejemplo al dividir cero entre cero |
>> pi ans = 3.1416 >> i ans = 0.0000 + 1.0000i >> j ans = 0.0000 + 1.0000i >> eps ans = 2.2204e-16 >> realmax ans = 1.7977e+308 >> realmin ans = 2.2251e-308 >> 3/0 ans = Inf >> 0/0 ans = NaN >> inf-inf ans = NaN
Comandos
clear | Borra todas las variables de la memoria |
---|---|
clear x y z | Borra las variables x, y, z de la memoria |
who | Lista de variables que se están utilizando |
whos | Lista de variables junto a su tamaño en memoria |
Se recomienda al lector que ejecute el comando clear cada vez que comience una tarea, o corra un script. Todas las variables se borran de memoria y la ventana Workspace aparecerá vacía. Alternativamente, se elige en el menú la opción Clear Workspace
Cálculo con variables
Calcular la expresión
donde a=8, b=3 y c=-2
Vamos a utilizar con cuidado los paréntesis
>> a = 8; b = 3; c = -2; >> b-a/(b+(b+a)/(c*a)) ans = -0.4595
Calcular las raíces de la ecuación de segundo grado con MATLAB, ax2+bx+c=0
Sea la ecuación de segundo grado x2-x-6=0. Una de las raíces es
>> a=1; b=-1; c=-6; >> x=(-b+sqrt(b^2-4*a*c))/(2*a) x = 3
En vez de tener que volver a escribir
>> x=(-b-sqrt(b^2-4*a*c))/(2*a)
Pulsamos la tecla cursor flecha hacia arriba y obtenemos la línea anterior,
La editamos, cambiando el signo + por -. Pulsamos Retorno, obtenemos, la segunda raíz
>> x=(-b-sqrt(b^2-4*a*c))/(2*a) x = -2
Haciendo doble-click en el comando de la ventana Command History, el comando aparece en la ventana de comandos, Command Window y es ejecutado.
También es posible arrastrar el comando desde la ventana Command History a Command Window, hacer los cambios que sean necesarios y correrlo, pulsando Retorno, tal como se muestra en la figura.
Pulsamos la tecla cursor hacia arriba y obtenemos la línea anterior, la editamos, cambiando el signo + por -. Pulsamos Retorno, obtenemos, la segunda raíz. Alternativamente, arrastarmos con el puntero del ratón el comando desde Command History, lo modificamos y pulsamos Retorno.
Ficheros script
Cada vez que pulsamos Retorno se ejecuta el último comando y los comandos que hemos ejecutado anteriormente no se pueden cambiar. Un modo diferente de proceder es crear un fichero de texto con la lista de comandos, guardarlos y luego ejecutar el nombre del fichero en la ventana de comandos, los comandos guardados se ejecutan uno tras otro en orden consecutivo. Podemos editar el fichero, cambiarlo, guardarlo y volverlo a ejecutar para ver el efecto de los cambios. Otra ventaja, es que podemos reutilizar una parte o todo el código del fichero, copiándo líneas Edit/Copy o CTRL+C de un fichero y pegándolas Edit/Paste (CTRL+V) en el lugar apropiado de otro fichero. O bien, guardándolo File/Save as... con otro nombre y editándolo para modificarlo.
Para escribir un fichero script se abre el Editor seleccionado New/Script y se escriben el código que queremos guardar. Estos ficheros tienen extensión m.
Creamos el script ecuacion_2 y lo guardamos en un fichero con extensión .m
dis=sqrt(b^2-4*a*c); x1=(-b+dis)/(2*a) x2=(-b-dis)/(2*a)
En la ventana de comandos, Command Window, asignamos valores a las variables a, b y c, y ejecutamos el script ecuacion_2
>>a=1; b=-1; c=-6; >> ecuacion_2 x1 = 3 x2 = -2
Las variables a, b y c, pueden estar también en el script
a=1; b=-1; c=-6; dis=sqrt(b^2-4*a*c); x1=(-b+dis)/(2*a) x=(-b-dis)/(2*a)
>> ecuacion_2 x1 = 3 x2 = -2
Se puede crear un script a partir de los comandos guardados en Command History.
Si escribimos en la ventana Command Window
>> a=1; b=-1; c=-6; >> dis=sqrt(b*b-4*a*c); >> x1=(-b+dis)/(2*a) x1 = 3 >> x2=(-b-dis)/(2*a) x2 = -2
En la ventana Command History se guardan los comandos, tal como vemos en la imagen.
Se selecciona con el ratón, manteniendo pulsada la tecla Ctrl los comandos resaltados en la figura. Se pulsa el botón derecho del ratón y se selcciona en el menú flotante Create Script. Aparece la ventana del Editor con los comandos selecionados.
Ahora solamente queda guardarlo y darle un nombre al script ecuacion_3, pulsando en el icono Save.
Corremos el script en la ventana de comandos Command Window, escribiendo el nombre del script o bien, pulsando el botón Run
>> ecuacion_3 x1 = 3 x2 = -2
Es una buena práctica escribir ficheros script que sean fáciles de entender por nosotros mismos, después de un cierto tiempo y por otros lectores que tengan acceso al código que hemos creado. Esto implica al menos, las siguientes tareas:
- Asignar a las variables y funciones nombres significativos
- Estructurar el código
- Comentar el código, describiendo las tareas que realiza cada una de sus partes
La carpeta de trabajo
La carpeta de trabajo es el lugar donde se guardan los ficheros .m que hemos creado. La carpeta de trabajo se muestra y se selecciona debajo de la barra de botones pulsando en la flecha hacia abajo situda a la derecha
Se establece la carpeta de trabajo mediante el comando cd, indicando la unidad c:, carpeta /MATLAB, subcarpeta /fisica
>> cd c:/MATLAB/fisica
Alternativamente, se utiliza el botón titulado 'Browser for folder' situado a la izquierda. Una vez que se ha localizado la subcarpeta fisica en la carpeta MATLAB, en el cuadro de diálogo que aparece, se pulsa en el botón titulado 'Seleccionar carpeta'
Ejemplos
1.-Evaluar las siguientes expresiones para el valor dado de x
>> x=2; >> y=1/(x-3)-5/(x^2-x-6) y = 0.2500 >> x=pi/6; >> y=(tan(x)-sin(x))/(x-sin(x)) y = 3.2777 >> x=3; >> y=1/(2*(1-sqrt(x)))-1/(3*(1-nthroot(x,3))) y = 0.0707
2.-La longitud del arco de parábola de la figura es
Calcular s para a=12 y b=8
>> a=12; b=8; >> s=sqrt(b^2+16*a^2)/2+b^2*log((4*a+sqrt(b^2+16*a^2))/b)/(8*a) s = 25.9922
3.-Un proyectil se dispara con un ángulo θ y una velocidad inicial v0. Calcular el alcance horizontal, la altura máxima y el tiempo de vuelo del proyectil, desde que sale hasta que impacta con el suelo
θ=60°, v0=600 m/s, g=10 m/s2.
>> format short g >> th=60; v0=600; g=10; >> x_max=v0^2*sind(2*th)/g x_max = 31177 >> y_max=v0^2*sind(th)^2/(2*g) y_max = 13500 >> t_vuelo=2*v0*sind(th)/g t_vuelo = 103.92
4.-Ley del enfriamiento de Newton
La temperatura ambiente es Ts=20, la temperatura inicial del cuerpo T0=5. Calcular la temperatura T del cuerpo en el instante t=3, sabiendo que k=0.45.
> format short >> Ts=20; T0=5; k=0.45; >> T=Ts+(T0-Ts)*exp(-k*3) T = 16.1114