• No se han encontrado resultados

Programaci´on de funciones que trabajan con arreglos y utilizan ciclos for en el lenguaje de MATLAB

N/A
N/A
Protected

Academic year: 2022

Share "Programaci´on de funciones que trabajan con arreglos y utilizan ciclos for en el lenguaje de MATLAB"

Copied!
2
0
0

Texto completo

(1)

Programaci´ on de funciones que

trabajan con arreglos y utilizan ciclos for en el lenguaje de MATLAB

Objetivos. Aprender a definir funciones en el lenguaje de MATLAB que trabajen con arreglos y utilicen ciclos.

Requisitos. Se supone que el estudiante ya tiene experiencia de definir funciones nuevas, trabajar con arreglos y escribir ciclos for en MATLAB o en alguno de sus an´alogos libres (GNU Octave, Scilab, FreeMat).

En los siguientes ejemplos se trata de GNU Octave, pero casi lo mismo se aplica en MATLAB, Scilab y FreeMat.

1. Ejemplo de una funci´on que produce una lista de n´umeros usando un ciclo for. Definimos una sucesi´on (xk)k=1 mediante una recurrencia lineal de segundo orden y dos condiciones iniciales:

xk = 2xk−1+ xk−2 (k ≥ 3), x1 = 3, x2 = 5.

La siguiente funci´on construye un arreglo (columna) con los primeros n elementos de esta sucesi´on (se supone que n ≥ 2). En cualquier editor crear el siguiente archivo de texto y guardarlo en el formato “texto simple” con el nombre mysequence.m:

function [x] = mysequence(n), x = zeros(n, 1);

x(1) = 3;

x(2) = 5;

for k = 3 : n,

x(k) = 2 * x(k - 1) + x(k - 2);

endfor endfunction

Abrir GNU Octave, usando los comandos cd, pwd y ls moverse a la carpeta donde est´a guardado el archivo harm.m y ejecutar los siguientes comandos:

mysequence(5) mysequence(8)

Programaci´on de funciones con arreglos y ciclos for (MATLAB), p´agina 1 de 2

(2)

2. Ejemplo de una funci´on que produce una matriz usando un ciclo for.

function [a] = flipmatrix(n), a = zeros(n);

for k = 1 : n,

a(k, n + 1 - k) = 1;

endfor endfunction Pruebas:

flipmatrix(3) flipmatrix(5)

3. Ejemplo de una funci´on que cuenta el n´umero de entradas positivas en un arreglo dado con un ciclo for.

function [c] = countpositives(a), c = 0;

for k = 1 : length(a), if a(k) > 0,

c += 1;

endif endfor endfunction

Aqu´ı en vez del operador condicional se puede usar la siguiente construcci´on porque GNU Octave identifica true con el n´umero 1:

function c = countpositives(a), c = 0;

for k = 1 : length(a), c += a(k) > 0;

endfor endfunction Pruebas:

countpositives([7; -3; 5; 6; 4]) a = rand(1, 10);

countpositives(a)

4. Consejo para futuro: evitar el ciclo for. Espero que los ejemplos escritos arriba puedan ser ´utiles para los estudiantes que est´an aprendiendo la programaci´on en el len- guaje de MATLAB. Por supuesto, en todos estos ejemplos hay soluciones m´as eficientes que utilizan operaciones matriciales y evitan el ciclo for.

Programaci´on de funciones con arreglos y ciclos for (MATLAB), p´agina 2 de 2

Referencias

Documento similar

Escribir una funci´ on solveut que resuelva el sistema U x = b, donde U es una matriz cuadrada triangular superior con entradas diagonales no nulas...

[r]

Sumando las fuerzas en el diagrama de cuerpo libre del carro en la dirección horizontal, se obtiene la siguiente ecuación del movimiento:.. Sumando los momentos sobre el centroide

Programaci´ on de funciones con arreglos y ciclos for; creaci´ on de vectores pseudoaleatorios; medici´ on del tiempo de ejecuci´ on1. Problema: operaci´

Los siguientes comandos est´ an escritos en el lenguaje de Matlab y se pueden ejecutar en el sistema Matlab o en sus an´ alogos (GNU Octave, Scilab, FreeMat).. Vectores ortogonales y

En realidad estas funciones se pueden aplicar tambi´ en a matrices, pero en ese caso se aplican por separado a cada columna de la matriz, dando como valor de retorno un vector

Este procedimiento es de aplicación a todas las actividades servicios, procesos e instalaciones existentes en los Centros incluidos en los OG que conforman el SIGA-SSPA y

Primero se escribe el tipo de retorno en este caso el conjunto que corresponde al tipo de dato del ´ area del rect´ angulo, como es real el tipo de dato es