Está en la página 1de 11

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I

FUNCIONES CREADAS POR EL USUARIO Creacin de M-Archivos

Function
function output=poly(x) % Esta funcion calcula el valor de un polinomio de tercer orden output=3*x.^3+5*x.*x-5;

en command window
>>poly(4) ans= 265 >>poly(1:5) ans= 7 41 121 265 491

Angel Ayala Herrera

Pgina 1

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I


Ejemplo Crear un programa para conversin de grados y radianes Sol:
1. 2. Crear funciones DR y RD para cambiar grados a radoianes y viceversa Describir las entradas y salidas Entrada: un vector de valores grado Un vector de valores radian Salida: Una tabla que convierta grados a radianes Una tabla que convierta radianes a grados Crear fichero RD:

function output=RD(x) output=x*180/pi;

Crear fichero DR:

function output=DR(x) output=x*pi/180;

La solucin est dada por:


clc % Define un vector de valores grado degrees=0:15:180; % Llama a la funcion DR radians = DR(degrees); % Crear tabla para usar en la salida degrees_radians = [degrees;radians]' % Define un vector de valores radian radians=0:pi/12:pi; % Llama a la funcion RD degrees=RD(radians); radians_degrees=[radians;degrees]'

en command window
>>conversion

Angel Ayala Herrera

Pgina 2

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I

Funciones con entradas y salidas mltiples Crear fichero


function output=g(x,y) % Esta funcin multiplica x a=x.*y; output=a; e y, deben tener el mismo tamao

Cuando x e y se definen en la ventana de comando y se llama la funcin g se regresa un vector de valores de salida:

Ejemplo para que regresen ms de una variable de salida Angel Ayala Herrera Pgina 3

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I

function [dist,vel,acel]=movimiento(t) %Esta funcion calcula la distancia, velocidad y aceleracion de un %automovil para un valor de t:tiempo. acel=0.5.*t; vel=acel.*t; dist=vel.*t;

en command window
>> [distancia, velocidad, aceleracion]=movimiento(10) distancia = 500 velocidad = 50 aceleracion = 5 <Si llama la funcin movimiento sin especificar las tres salidas solo regresara la primera>

Angel Ayala Herrera

Pgina 4

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I


ENTRADA Y SALIDA CONTROLADAS POR EL USUARIO Los datos no necesitan ser informacin numrica en command window
>> x=input('Ingrese su nombre en apostrofes \n') Ingrese su nombre en apostrofes 'ANGEL' x= ANGEL

Ejemplo cada libre


clear,clc % Solicite entrada al usuario g=input('cual es la aceleracion de la gravedad? \n') start=input('tiempo de inicio? \n') finish=input('tiempo final? \n') incr=input('Que incrementos de tiempo? \n') t=start:incr:finish; %Calcula la distancia d=1/2*g*t.^2; % Grafica los resultados plot(t,d) % loglog(t,d) final_distancia=max(d)

Angel Ayala Herrera

Pgina 5

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I

De otra manera:
clear,clc % Caida libre % Solicite entrada al usuario g=input('cual es la aceleracion de la gravedad?') start=input('tiempo de inicio?') finish=input('tiempo final?') incr=input('Que incrementos de tiempo?') t=start:incr:finish; % Calcula la distancia d=1/2*g*t.^2; % Crea una matriz de datos a la salida table=[t;d]; % Envia la salida a la ventana de comandos fprintf('Para una aceleracion debida a la gravedad de 5.1f segundos \n se calcularon los siguientes datos \n', g) disp('Distancia recorrida en caida libre') disp('tiempo, s distancia, m') fprintf('%8.0f %10.2f\n ', table)

Angel Ayala Herrera

Pgina 6

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I

Angel Ayala Herrera

Pgina 7

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I


PROGRAMACION EN MATLAB Instruccin if-end Ejm. 1
%Archivo UTP_1.m %Lee un dato de entrada y escribe como dato de %salida si aprueba o reprueba. %Pide calificacion calif= input('Dame la calificacion: \n'); if calif >=10 fprintf ('Felicidades, estas aprobado.') end if calif<10 fprintf('Lo siento. Estas jalado') end

en command window
Dame la calificacion: 15 Felicidades, estas aprobado.>>

Instruccin for Ejm. 2


%Archivo UTP_4.m suma=0; for i=1:10 suma=suma+i; end fprintf('La suma es %g.', suma)

en command window
La suma es 55.>>

Ejm. 3
suma=0; for i=0:2:10 suma=suma+i; end fprintf('La suma es %g.', suma)

Angel Ayala Herrera

Pgina 8

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I


en command window
La suma es 30.>>

Ejm. 4

Ejm. 5 For anidado Suma de los terminos de una matriz aij


%Este archivo calcula la suma de los elementos de una matriz n x m. n=input('Dame el numero de renglones \n'); m=input('Dame el numero de columnas \n'); suma=0; %Lee los elementos y los suma for i=1:n %Lee los elementos del renglon i y los suma for j=1:m fprintf('Dame el elemento %g,%g,i,j'); a(i,j)=input('de la matriz \n'); suma=suma+a(i,j); end end fprintf('La suma total es %g',suma)

Angel Ayala Herrera

Pgina 9

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I


en command window

Instruccin While Ejm. 6 Calcular el volumen de las esferas de radio 1 hasta 5


%Archivo UTP_8.m %Este programa calcula el radio de las esferas de radio 1 hasta 5 %r es el radio de la esfera r=0; while r<5 r=r+1; vol=(4/3)*pi*r^3; fprintf('El radio es %g y el volumen es %g. \n',r,vol) end

Angel Ayala Herrera

Pgina 10

Tutorial Matlab Mtodos Matemticos de Telecomunicacin I

Angel Ayala Herrera

Pgina 11