Publicado el 15 de Enero del 2019
1.523 visualizaciones desde el 15 de Enero del 2019
372,2 KB
20 paginas
Creado hace 13a (29/09/2011)
Laboratorio de Computación Científica
Primer semestre
Programación MATLAB
y OCTAVE
Temario
Programación
Bucles for/while
Condicionales if
Funciones y Sripts (M-files)
Representación gráfica
Entrada/Salida
Programación
Diagrama flujo
Esquema gráfico del
programa
Ayuda a comprender
su evolución
Traducción casi directa
a un lenguaje alto-nivel
Programación
Bucles for/while
for: itera entre valores conocidos
for variable = expresión
<orden>
end
…
>> for x = 1:5,
end
disp ('x toma el valor');
disp (x)
while: itera hasta que se deja de cumplir una
condición
while <expresión>
<orden>
end
…
>> a=3;
>> while a < 5,
disp ('a es menor que 5 ya que vale')
disp (a)
a = a + 1;
en
Programación
Operadores condicionales
Operador
<
<=
>
>=
==
~=
Significado
Menor que
Menor o igual
Mayor que
Mayor o igual
Igual que
Distinto que
Operadores lógicos
Operador
Significado
Y además
&
|
~
y
o
no
xor (x,y) operación “o” exclusiva,
any (x) ¿algún?
all (x) ¿todos?
Programación
Sentencia if
Evalúa una expresión lógica
if <expresión1>
<orden>
elseif
else
end
…
<expresión2>
<orden>
…
<orden>
…
>> if x<5,
end
disp(„x es menor que 5‟);
Programación
Funciones o M-file
Un función, .m o M-file, es un fichero de texto
que agrupa un conjunto de instrucciones
Matlab/octave interpreta las instrucciones del
fichero en secuencia
Sintaxis del fichero nombre_funcion.m:
function [var_salida] = nombre_funcion (var_entrada)
function sum=suma(a,b)
sum=a+b;
>> sum=suma(3,4)
sum=7
Programación
Scripts
Colección de sentencias que se ejecutan de
forma secuencial escritas en un fichero
Diferencia scritps-funciones
Scripts (no tiene parámetros de entrada ni salida)
Funciones (tienen parámetros de entrada y
salida)
Scripts (variables definidas tienen ámbito global)
Funciones (variables definidas tienen ámbito
local)
Programación
Ejemplo diferencia función/script
parámetros de entrada y salida
function sum=suma(a,b)
sum=a+b;
suma.m
sum=a+b;
>> x=suma(3,4)
x=7
>>a
??? Undefined function or variable 'a'.
>> a=3; b=4;
>> suma;
>> sum
sum =
7
a, b y sum no definidos
x se ha definido y vale 7
a, b y sum definidos
a vale 3
b vale 4
sum vale 7
Representación gráfica
Difieren la visualización en Matlab/octave
Figuras 2D
plot(xdata1,ydata1,‟estilo_color‟, xdata2….);
Dibuja un (o varios) vector frente a otro
>> x = -2:1:2;
>> y = [4 1 0 3 -1];
>> plot (x,y)
Representación gráfica (plot)
plot
title(„título‟): añade el título
xlabel(„etiqueta‟): añade etiqueta en eje x
Ylabel: funciona igual. ylabel off lo elimina
text (x,y,‟texto‟): introduce la cadena „texto‟ en las
coordenadas x,y
legend(): define la leyenda de la figura
grid: activa la rejilla
hold on/off: activa/desactiva la incorporación de nuevas
gráficas
Estilo de líneas:
Representación gráfica (plot)
>> x = linspace(0,pi,30);
>> y = sin(x);
>> plot(x,y);
>> grid on;
>> hold on;
>> plot(x,exp(-x),'r*')
matlab
GUIoctave
Representación gráfica (subplot)
Representación gráfica 2D
Representación gráfica (plot3)
Extensión del plot 2D a 3D
>> %Muelle
>> x = -500:500;
>> y = sind(x);
>> z = cosd(x);
>> plot3(x,y,z)
Representación gráfica (mesh)
Visualización de una
malla
meshgrid crea las
matrices malla
… y mess representa
gráficamente la malla
>> x = -10:0.5:10; y = -10:0.5:10;
>> [X,Y] = meshgrid (x,y); % crea matrices para hacer la malla
>> Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
>> mesh (X,Y,Z) % dibuja la gráfica
Representación gráfica (contour)
Líneas de contorno
>> x = -10:0.5:10; y = -10:0.5:10;
>> [X,Y] = meshgrid (x,y); % crea matrices para hacer la malla
>> Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
>> [C,h] = contour (X,Y,Z);
>> clabel (C,h) % incluye los valores de las isolíneas
Entrada/Salida
Matlab/octave permite guardar y cargar datos
de los archivos del computador
save: guarda las variables y su contenido del
workspace
Sintaxis: save nombre_fichero [variables …]
load: carga las variables y su contenido de
alguna sesión anterior en el workspace
Sintaxis: load nombre_fichero [variables …]
Entrada/salida
Por defecto MATLAB guarda los datos en un fichero
binario
No se puede visualizar con un editor
-ascii: permite guardar los datos visualizables en un
editor
>> save guardar_miworkspace.mat –ascii X Y Z
Existen funciones fopen, fclose, fprintf, fscanf,
fgets,… simulares a la funciones de C/C++ para el
manejo de ficheros
Entrada/salida
También permite comunicarse a través de la
pantalla/teclado
disp(„cadena‟): muestra una en pantalla
input(„cadena‟): devuelve un dato recogido por
teclado
fprintf/fscanf: similares a los de C/C++
>> disp („Hola Mundo!!‟);
Hola Mundo!!
>> a = input(„introduce un numero ‟);
Introduce un numero: 3
>> a
>> fprintf (1,„el numero a=%i\n', a);
El numero a=3
3
Comentarios de: Programación MATLAB y OCTAVE (0)
No hay comentarios