Вы находитесь на странице: 1из 5

Tema 3

Programacin en Mat Lab

4.1
Introduccin.
Es un lenguaje parecido al lenguaje C.
4.2
Variables y operadores
Las variables se tratan como en un lenguaje de alto nivel, los operadores son:
Aritmticos
:
+
*
/
rem mod
Relacionales
:
< >
<=
>=
==
~= (diferente)
Lgicos
:
&
| (alt + 124) ~ (alt+126)
(AND, OR, NOT)
4.3
Sentencias de entrada y salida.
Entrada
variable=input('Cadena de solicitud')
Nota: para ingresar una matriz debe delimitarse entre corchetes.
Salida |
disp(variable arreglo)
fprintf( cadena de formato , lista de variables)
4.4
Estructuras de control.
Al igual que en la programacin con un lenguaje de alto nivel, Mat Lab tiene tambin
una estructuracin: Secuencial, Bifurcacin y Repeticin.
4.4.1 Bifurcacin simple.- Sentencia if
if condicin
sentenciasV
else
sentenciasF
end
4.4.2

Bifurcacin compuesta.- Sentencia switch


switch selector
case valor1,
sentencias1
case valor2,
sentencias2
otherwise,
sentencias por defecto
end

4.5
4.5.1

Estructura de repeticin.Sentencia while


while condicin
sentencias
end

4.5.2 Sentencia for


for contador=valor inicial: [incremento : ] valor final
sentencias
end
4.5.3 Sentencia break
Rompe la ejecucin de un bucle, termine el bucle y salta a la .siguiente instruccin
despus del bucle.
4.5.4 Sentencia continue
Hace que el resto del bucle de repeticin se ignore y se contine con la siguiente i
teracin.
Veamos algunos ejemplos:
1.
Cdigo para verificar si un nmero es par o impar.

2.
3.

Hacer un cdigo para visualizar los nmeros del 1 al 10.


Cdigo para hacer la evaluacin de la funcin

4.6
Archivos .m
Los archivos .m son archivos de texto sin formato, que constituyen el centro de
la programacin en MatLab; estos archivos .m, contiene los programas en forma de
funciones, que son instrucciones que ejecutar MatLab.
4.6.1 Funciones en MatLab.
Como en todo lenguaje de programacin, al definir una funcin, se tiene un nombre, y
los parmetros de entrada y salida hacia y desde la funcin:
a)
Funcin que devuelve una sola variable
La funcin a evaluar , donde es un escalar, para evaluarla como vector o matriz
los operadores aritmticos deben ser de arreglos ( .* ./ .^)
Ejemplo: funcin

b)

Funcin que devuelve mltiples variables

En este caso se definen las variables de salida delimitados entre corchetes:


function [lista de variables de salida] = nomfuncion(lista de variable d
e entrada)
Ejemplo: funcin que calcula la suma y el producto de dos nmeros.

c)

Llamada a una funcin

Una funcin construida se la invoca desde el entrono de MatLab u otra funcin, si slo
devuelve un valor:
>> variable = funcion(parmetros)
Si devuelve dos ms valores, las variables receptoras deben delimitarse entre cor
chetes:
>> [variables receptoras] = funcion(parmetros de entrada)
Ejemplo: Hallar la media de un conjunto de datos en un vector.

4.6.2 Funciones con nmero variable de parmetros de entrada.


Se utilizan las variables de MatLab: varargin y varargout, que indican que el nm
ero de variables de entada ser variable, as como las de salida.

4.7
Funciones en MatLab.
Veamos algunas funciones para el tratamiento de variables numricas y de cadena..
4.7.1

Funciones de cadena.
size() determinar la dimensin y longitud de la cadena
abs()
devuelve nmeros ASCII de los caracteres
setstr()
convierte nmero en caracteres
isstr() detecta si una variable es una cadena de caracteres
strcmp()
comparacin de cadenas (diferente en C), 1 iguales, 0 dife

rentes.
int2str()
convierte un entero a cadena
num2str convierte un nmero real a cadena, con 4 decimales, puede tener ms
decimales con un argumento opcional
sprintf()
Convierte valores numricos encadenas con un formato.
4.7.2 Funciones de evaluacin.
En ocasiones es necesario evaluar una funcin que est escrita en forma literal, com
o cadena y no como expresin matemtica.
eval( cadena ) Se evala la cadena como expresin computacional matemtica. L
a cadena puede ser un comando, una frmula o en general una expresin vlida de MAT LA
B
feval( funcion ,argumentos)
Evala la funcin cuyo nombre se ha recibido con los
argumentos.
Ejemplo:
>> eval( 4+sin(pi) )
>> feval( f ,5)
// f nombre de la funcin, 5 es un valor d
e entrada
4.8
Espacio de trabajo.
Denominado Explorador del espacio de trabajo (Workspace Browser), es un rea de m
emoria accesible desde la lnea de comandos de MATLAB, se tienen dos comandos:
who
muestra una lista corta de las variables definidas
whos
muestra la lista de variables, y adems el tamao que ocupan y la informacin
de cmo est almenada la variable:
clear
borra todas las variables del espacio de trabajo de MATLAB:
clear variable
borra la variable del espacio de trabajo de MATLAB:
4.9

Formatos de visualizacin de nmeros.

format short
format long
format short e
format long e
format loose
format compact
[mayor, posi]=max(x)
length(x);
4.10

4 decimales
15 decimales
4 decimales con notacin cientfica
15 decimales con notacin cientfica

total de elementos en un vector

Ejercicios.
.
Realizar las funciones para:
Ingresar una cadena, y colocar sus cdigos en un vector.
Hacer la tabla de la suma
Resolver un sistema de ecuaciones lineales con una funcin
Una funcin que demuestre el uso de eval()
Una funcin que demuestre el uso de feval()

Aplicacin: numero primo:


Descripcin: Se ingresa un nmero n y luego se empieza a divide desde 1 hasta n-1, y
el algoritmo es el siguiente:
Algoritmo: Function NUMERO PRIMO COMPUESTO
Nombre primo
Parmetros
Entrada x : numero entero
Salida
p : numero entero
Variables
d, c : divisor y contador
1)
c=0
2)
Para d=1 hsata x-1 hacer
Si mod(x,d)==0
c = c+1
Fin_si
Fin_d
3)
Si c>2
p=0
sino
p=1
fin_si
Fin_Primo
Ahora escribir un programa que use la funcin primo para mostrar los nmeros primos
menores entre 20 y 60:
For x = 20: 60
if primo(x) == 1
disp(x);
end
end
Otros ejemplos:
function y=muchos(varargin)
n = nargin;
for k=1:n
x(k)=varargin{k};
end
y=x;
function [media, desvestandar] = mu_ds(x)
n = length(x);
media = sum(x)/n;
varianza = sum(x.^2/n)-media^2;
desvestandar = sqrt(varianza);
function serie
fprintf('\n');
x = input('Ingrese los valores de x : ');
y = input('Ingrese los valores de y : ');
n = length(x); V = ones(n,n); x = x'; y =y';
for j=2:n
V(:,j)=x.*V(:,j-1)
end
a = V\y
z=x(1):0.2:x(n);
imagen=a(n)
for i=n-1 :-1: 1
imagen =a(i)+z.*imagen

end
plot(imagen)
function z=si(g)
z=feval(g,3);
llamada >>si( g )
function y=g(x)
y=min(x);
4.11

Numero variable de argumentos.

En ocasiones la definicin defunciones, puede utilizar un nmero variable de parmetro


s de entrada como de salida, para esto se utilizan:
varargin
vector de argumento de entrada, de tipo cell array, donde los elementos se acced
en por medio de llaves y no entre parntesis.
nargin
dato entero, que indica el nmero de los argumento de entrada.
varargout
vector de argumento de salida, tambin de tipo cell array, que agrupa los ltimos va
lores de retorno de la funcin. Puede haber otros valores de retorno, pero varargo
ut debe ser el ltimo. El cell array varargout se debe crear dentro de la funcin y
hay que dar valor a sus elementos antes de salir de la funcin.
nargout
dato entero, que indica el nmero de los argumento de salida o retorno.
Ejemplo:
Function varargout = atan3(varargin)
if nargin==1
rad = atan(varargin{1});
elseif nargin==2
rad = atan2(varargin{1}, varargin{2});
else
disp( error, mas de dos argumentos );
end
varargout{1} = rad;
if nargout>1
varargout{2} = rad*180/pi;
end
>> a = atan3(1)
>> [ a , b] = atan3( 1, -1)
-------------------------------------------------------------------------------------

Вам также может понравиться