Apuntes Octave

También podría gustarte

Está en la página 1de 20

Introduccin al Octave o

Alberto F. Hamilton Castro Dpto. de Ingenier de Sistemas y Automticas y Arquitectura y Tecnolog de Computadores a a a Universidad de La Laguna 6 de noviembre de 2006

Indice
1. Introduccin o 2. N meros u 3. Matrices 3.1. Denicin expl o cita . . . . . . . 3.2. Rangos . . . . . . . . . . . . . . 3.3. Funciones que generan matrices 3.4. Indexacin . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 4 4 5 5 6 6 7 7 7 7 7 8 8 9 9 10 10 10 10 11 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12 13 13 13 14 14

4. Operaciones sobre matrices 4.1. Aritmticas . . . . . . . . . . . . . . e 4.2. De relacin . . . . . . . . . . . . . . o 4.3. Lgicas . . . . . . . . . . . . . . . . o 4.4. Operadores lgicos de circuito-corto o

5. Funciones 5.1. Funciones matemticas . . . . . . . . . . . a 5.1.1. Matriciales . . . . . . . . . . . . . 5.1.2. Por elementos . . . . . . . . . . . . 5.2. Funciones de reorganizacin de matrices . o 5.3. Funciones de anlisis de datos . . . . . . . a 5.4. Funciones de comprobacin de condiciones o 6. Matrices string 6.1. Funciones que crean string . . . . . . 6.2. Funciones de b squeda y reemplazo . u 6.3. Funciones de conversin de string . . o 6.4. Funciones lgicas . . . . . . . . . . . o 7. Polinomios 8. Grcos a 8.1. Grcas en dos dimensiones . . . . . . a 8.2. Comandos para el control de la grca a 8.3. Etiquetas en la grca . . . . . . . . . a 8.4. Grcas tridimensionales . . . . . . . . a 8.5. M ltiples grcas . . . . . . . . . . . . u a 8.6. M ltiples ventanas . . . . . . . . . . . u . . . . . . . . . . . .

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

N meros u

9. Control de ujo 9.1. Estructura if . . . 9.2. Estructura while . 9.3. Estructura for . . . 9.4. Sentencia break . . 9.5. Sentencia continue 9.6. Funciones . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

14 14 15 15 15 15 16

10.Ficheros de comandos 16 10.1. Ficheros de funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 o 10.2. Ficheros de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 11.Estructuras 17 11.1. Funciones propias de las estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 11.2. Recorrido de los campos de una estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 12.Comandos entrada/salida 18 12.1. Por terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.2. Por chero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 12.3. Entrada y salida tipo C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 13.Otros Comandos de inters e 13.1. Generales del entorno . . . 13.2. Manejo de identicadores . 13.3. Manejo del directorio actual 13.4. Control del tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 20 20

1.

Introduccin o

Octave es un paquete que permite la programacin en alto nivel para el clculo numrico. Est inspirado en o a e a el paquete comercial MATLAB, al cual es prcticamente compatible hasta las versiones 4. a Se caracteriza porque el tipo de datos bsico es la matriz matemtica (de 2 dimensiones), para las cuales a a tiene implementadas gran cantidad de operaciones. Tambin puede manejar cadena de caracteres (string) y e estructuras. Las estructuras que son arrays asociativos con inidices de tipo string, es decir, son variables que pueden contener matrices, u otras estructuras, identicadas por su nombre, al estilo de la estructuras de C. Se utilizan identicadores de cualquier longitud para nombrar las variables y funciones. En estos se distinguen las may sculas de las min sculas. u u Debido a la facilidad para la creacin de funciones con n mero variable de parmetros de entrada y salida, o u a ha podido ampliarse con conjuntos de funciones para abordar numerosos problemas del campo de las ciencias y la ingenier calculo numrico, estad a: e stica, procesamiento de se ales, control, etc. n Posee capacidades para realizar grcas bidimensionales bastante completas gracias a la utilizacin de la a o aplicacin Gnuplot. Tambin son posibles las grcas tridimensionales algo ms sencillas. o e a a Al ser un software acogido a la GPL (licencia publica general) su cdigo fuente est disponible y puede ser o a ampliado y mejorado por cualquier usuario. El documento actual se reere al la versin 2.1.73 de Octave. o

2.

N meros u

El octave maneja todos los n meros como complejos en punto otante seg n el estndar IEEE. Para indicar u u a a a el exponente se utiliza la letra e como ocurre en la mayor de lenguajes informticos. As para escribir el n mero 2,84 1015 pondremos 2.84e-15 u Para indicar la parte compleja, se a ade al n mero la letra i j. n u o Para representar el n mero complejo con parte real 4 e imaginaria 2.5 escribiremos 4+2i o 4+2.5j. u

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

3 Matrices

Tambin es posible, en esta norma, la representacin de los No-Nmeros (NaN), resultado de la divisin 0/0, y e o u o el valor ms y menos innito (Inf). a Es posible indicar que un n mero no est denido usuando la constante NA. u a Cuando se utiliza un n mero en un expresin de lgica booleana, el valor 0 se considera falso y algo distinto u o o de 0 se considera verdadero (como en el lenguaje C).

3.

Matrices

Como ya se coment, el tipo bsico de datos es la matriz bidimensional de n meros complejos en punto o a u otante. Las matrices son rectangulares, por lo que todas las las tienen el mismo n mero de columnas y todas u las columnas el mismo n mero de las. u Existen casos especiales de matrices: cuadrada tiene el mismo n mero de las que de columnas. u vector tiene una sola la o columna. vector la vector que tiene una unica la. vector columna vector que tiene una unica columna. escalar matriz con un unico elemento, es decir, una la y una columna. matriz vac no tiene elementos, alguna de sus dimensiones es cero. a La matrices pueden tener cualquier tama o y pueden ser ampliadas o reducidas dinmicamente, es decir, no es n a necesario declarar el tama o previamente, como ocurre en otros lenguajes de programacin, ya que el entorno n o se encarga de conseguir la memoria necesaria. Para conocer el tama o de una matriz se dispone de las siguientes funciones: n columns(A) devuelve el n mero de columnas de la matriz. u rows(A) devuelve el n mero de las de la matriz. u size(A) devuelve vector la de dos elementos, primero el n mero de las y segundo el n mero de columnas u u size(A,n) donde n puede ser 1 2, devuelve el n mero de las si n=1, o el n mero de columnas si n=2. o u u isempty(A) devuelve 1 si A es una matriz vac a. Las matrices pueden generarse, a groso modo: mediante denicin expl o cita como resultado de operaciones como resultado devuelto por una funcin o

3.1.

Denicin expl o cita

Se realiza indicando los elemento entre corchetes ([ ]). La coma (,) o el espacio se utiliza para separar los nea se utiliza para separar una la de la siguiente. elementos de una la. El punto y coma (;) o el salto de l Siempre es recomendable la utilizacin de la coma y punto y coma en vez del espacio y el salto de l o nea, ya que estos ultimos pueden llevar a errores dif ciles de localizar. 1 2 3 para representar la matriz A = 4 5 6 escribiremos: 7 8 9
A=[1, 2, 3; 4, 5, 6; 7, 8, 9]

Las elementos pueden ser constantes, expresiones u otras matrices, siempre y cuando de lugar a una matriz de dimensiones correctas.

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

3 Matrices

1 para construir la matriz B = 4 7


B=[A, [11; 6*2; 10+3]]

2 3 5 6 8 9

11 12 podemos escribir: 13

ya que con esto a adimos a la matriz A una columna con los elementos 11, 12 y 13 para generar B. n La matriz vac se dene con dos corchetes sin elementos: [] a

3.2.

Rangos

Genera vector la de n meros equiespaciados. Tiene las siguientes formas: u exp1 :exp3 :exp2 exp1 :exp2 En este segundo caso se asume exp3 =1 El vector generado estar formado por: [exp1, exp1+exp3, exp1+2*exp3 ....], el elemento nal ser aquel de la a a serie que sea: menor o igual que exp2 si exp3 es positiva; mayor o igual si exp3 es negativa. el rango 1:2:8 es equivalente a [1, 3, 5, 7] el rango 10:-3:-5 es equivalente a [10, 7, 4, 1, -2, -5] el rango 1:-1:5 dar lugar a la matriz vac [] a a Octave guarda de forma compacta los rangos, slo genera el vector correspondiente cuando es necesario. o

3.3.

Funciones que generan matrices

Existe una serie de funciones que se utilizan muy a menudo para generar matrices de ciertas caracter sticas como son las siguientes: zeros(n) crea una matriz cuadrada de dimensin n (con n las y n columnas) con todos sus elementos a 0. o zeros(n,m) zeros([n,m]) crea una matriz de n las y m columnas con todos sus elementos a 0. ones Genera una matriz con todos sus elementos a 1. Tiene las mismas formas de invocacin que zeros: ones(n), o ones(n,m), ones([n,m]). eye devuelve una matriz con sus elementos a 0 salvo en la diagonal principal, o primera diagonal, cuyos elementos estn a 1. En el caso de que sea cuadrada representa la identidad para la dimensin correspondiente. a o Tiene las mismas formas de invocacin que zeros. o rand devuelve una matriz de elementos aleatorios uniformemente distribuidos entre 0 y 1. Tiene la mismas formas de invocacin que zeros. o randn devuelve una matriz de elementos aleatorios con distribucin normal (gausiana de media 0 y varianza o 1). Tiene la mismas formas de invocacin que zeros. o linspace(inicial,nal,n) devuelve un vector de elementos equiespaciados a partir del valor inicial y hasta el nal. Habr tantos elementos como indique n, o 100 si este parmetro no se especica. A diferencia de a a los rangos, en que se conoce la separacin de los elementos pero no su n mero, en este caso se conoce el o u n mero de elementos pero no su separacin. u o logspace(inicial,nal,n) similar a linspace pero con una separacin logar o tmica entre los elementos del vector. En este caso inicial y nal representan los exponentes de 10 para el valor inicial y nal del vector. En el caso de que nal valga el valor nal ser y no 10 . a

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

Operaciones sobre matrices

3.4.

Indexacin o

Cuando tenemos una variable matriz, representada por su identicador, es posible especicar submatrices de esta para operar con ellas. Esto se realiza mediante las expresiones de indexacin que consisten en: o NombreVariable(indice las, indices columnas) para el caso de matrices NombreVariables(indice elemento) para el caso de vectores Los posibles tipos de ndices son: Escalar Entero que selecciona slo la la/columna indicada. Las las/columnas se numeran comenzando por o el n mero 1. u La expresin A(3,1) representa al elemento de la tercera la, primera columna. En la matriz A o anterior su valor es 7. : selecciona todas las las/columnas
A(2,:) representa toda la segunda la A(:,1) representa toda la primera columna A(:,:) representa a todas las las y columnas, es decir, a toda la matriz

vector se selecciona cada una de las las/columnas indicadas por los elementos del vector y en el orden indicado por este.
A(2,[3 1]) representa la la 1 columnas 3 y 1. En nuestro ejemplo devolver [6,4] a A([2 1 2],1) selecciona el primer elemento de la la 2a la 1a y nuevamente la 2a . En nuestro ejemplo devolver [4; 1; 4] a A(3:-1:1,:) devuelve la matriz con el orden de las las invertido. En nuestro ejemplo [7,8,9;4,5,6;1,2,3]

lgico cuando el o ndice es un vector de ceros y unos de la misma longitud que n mero de las/columnas se u seleccionan unicamente aquellas que tienen el elemento correspondiente a 1. No suele utilizarse directa mente sino a travs de las operaciones de relacin y lgicas. En caso de conicto con el e o o ndice vector (por que todos los elementos son 1), por defecto, se supone el vector.
A([1 0 1],3) se selecciona el tercer elemento de las las 1a y 3a , ya que el elemento 1a y 3a del

vector estn a 1. a
A(:,[1 1 1]) como entra en conicto con el ndice vector selecciona la 1a columna 3 veces.

Por defecto no ser permite la indexacin tipo Fortran, que convierte a una matriz en vector columna si slo se o o le especica un ndice, como ocurre en MATLAB.

4.

Operaciones sobre matrices


Los operadores y funciones denidas se pueden clasicar en dos tipos:

matriciales operan sobre la matriz como un todo, seg n est denido matemticamente. Las dimensiones de u a a los operandos y el resultado estn establecidas por las leyes matemticas. a a elemento a elemento operan sobre cada uno de los elementos de las matrices intervinientes de manera independiente. Las matrices operadas han de tener las mismas dimensiones que, a su vez, sern las del a resultado. Cuando uno de los operandos es un escalar la operacin se realiza de cada elemento del otro operando (matriz) o con ese escalar.

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

Operaciones sobre matrices

4.1.

Aritmticas e

Las operaciones en este grupo son: X. trasposicin, intercambia las por columnas. o X trasposicin compleja conjugada, cambia las por columnas y cambia el signo de la parte imaginaria. Si o todos los elementos son reales, es equivalente a la trasposicin. o X+Y Suma de matrices, las dimensiones deben coincidir. X.+Y Suma elemento a elemento, equivalente a + X-Y Resta de matrices, las dimensiones deben coincidir. X.-Y Resta elemento a elemento, equivalente a X*Y Multiplicacin de matrices, las dimensiones internas (no de columnas de X y las de Y) deben coincidir. o X.*Y Multiplicacin elemento a elemento, las dimensiones deben coincidir. o X/Y Divisin de matrices, es decir, multiplicacin por la inversa por la derecha: X Y 1 o o X\Y Divisin de matrices por la izquierda, es decir, multiplicacin por la inversa por la izquierda X 1 Y o o X./Y Divisin de cada elemento de X por el correspondiente elemento de Y o X.\Y Divisin de cada elemento de Y por el correspondiente elemento de X o XP Potencia de matrices, slo denido matemticamente en los casos en que X P sea un escalar. Si P es o a o entero y X matriz cuadrada es equivalente a la multiplicacin de X por si mismo P veces. o X**P dem que XP X.P Potencia elemento a elemento, las dimensiones deben coincidir. X.**P dem que X.P -X Cambio de signo de todos los elementos de la matriz.

4.2.

De relacin o

Se realizan la comparacin de los valores elemento a elemento. Los operandos han de tener las mismas o dimensiones y se devuelve una matriz de las mismas dimensiones con los elementos a 1 donde se cumple la relacin y a 0 donde no se cumple. o Los operadores disponibles son: X<Y Cierto si el valor de x es menor que el de y X<=Y Cierto si el valor de x es menor o igual que el de y X>Y Cierto si el valor de x es mayor que el de y X>=Y Cierto si el valor de x es mayor o igual que el de y X==Y Cierto si el valor de x es igual que el de y X!=Y Cierto si el valor de x es distinto que el de y X=Y equivalente a X!=Y X<>Y equivalente a X!=Y

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

5 Funciones

4.3.

Lgicas o

Realizan la operacin booleana elemento a elemento suponiendo 0 como falso y distinto de 0 como verdad. o El resultado devuelto es 1 para verdad y 0 para falso. Los operadores son: X&Y y lgico, ser verdad slo si ambos elementos son verdad. o a o X|Y o lgico, ser falso slo si ambos elementos son falsos. o a o !X no lgico, ser falso si el elemento es verdad y ser verdad si el elemento es falso. o a a X equivalente a !X

4.4.

Operadores lgicos de circuito-corto o

En las estructuras condicionales es interesante terminar la evaluacin de las expresiones desde que se conozca o que el resultado va a ser falso o verdad: exp1&&exp2 Se eval a la exp1, si el resultado tiene alg n elemento falso (0) el operador devolver 0 sin u u a evaluar exp2. Si todos los elementos de exp1 son verdad se pasa a evaluar exp2. Si el resultado de exp2 tiene todos los elementos verdad el resultado ser verdad (1) caso contrario ser falso (0). a a exp1||exp2 Se eval a la exp1, si el resultado tiene todos los elementos a verdad (!=0) el operador devolver 1 u a sin evaluar exp2. Si alg n elemento de exp1 es falso se pasa a evaluar exp2. Si el resultado de exp2 u tiene todos los elementos a verdad el resultado ser verdad (1), caso contrario ser falso (0). a a

5.

Funciones

Se invocan indicando su nombre y argumentos de entrada, entre parntesis. Las funciones pueden devolver e varios resultados en una lista. La forma ms general de invocacin de una funcin es pues la siguiente: a o o [argSal1,argSal2,...]=nombre(argEnt1,argEnt2,....) Los argumentos de entrada siempre se pasan por valor, es decir, se eval a la expresin correspondiente y se u o pasan a la funcin. No es posible modicar dentro de la funcin el valor de una variable que se pase como o o argumento de entrada. Muchas funciones tienen un comportamiento distinto, en cada caso, dependiendo del n mero de argumentos u de entrada o de salida con que sean invocadas.

5.1.
5.1.1.

Funciones matemticas a
Matriciales

Son funciones que estn denidas matemticamente para toda la matriz. a a 5.1.1.1. Trascendentes

expm(A) Exponencial de una matriz cuadrada, se calcula por desarrollo de la serie de Taylor. logm(A) Logaritmo de una matriz cuadrada. sqrtm(A) Ra cuadrada de una matriz cuadrada. z 5.1.1.2. Generales

det(A) determinante de una matriz cuadrada. trace(A) traza de la matriz: suma de los elementos de su diagonal principal. inv(A) Calcula la inversa de una matriz cuadrada no singular (|A| = 0). inverse(A) equivalente a inv(A) landa=eig(A) calcula los autovalores de la matriz cuadrada. [v,landa]=eig(A) devuelve los autovectores y autovalores de la matriz cuadrada. rank(A) rango de la matriz. Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp 7

Alberto F. Hamilton Castro. CyC ULL

5 Funciones

5.1.2.

Por elementos

Funciones que se aplican a cada elemento de la matriz y el resultado se devuelve en una matriz de las mismas dimensiones. Estn denidas todas las habituales. a 5.1.2.1. Aritmtica compleja e

abs(X) mdulo de los elementos, si son reales es equivalente al valor absoluto. o arg(X) angle(X) argumento del n mero complejo. u conj(X) complejo conjugado, parte imaginaria cambiada de signo. imag(X) parte imaginaria como n mero real. u real(X) slo parte real de los elementos. o 5.1.2.2. Utilitarias

ceil(X) oor(X) x(X) round(X) redondeos. gcd(X) mximo com n divisor. a u lcm(X) m nimo com n m ltiplo. u u rem(X,Y) resto de la divisin de matrices reales. o sign(X) signo de los elementos: 1 si positivo, -1 si negativo, 0 si 0. 5.1.2.3. Trascendentes

exp(X) log(X) log10(X) log2(X) exponencial y logaritmos. pow2(X) para elemento se calcula 2x . sqrt(X) ra cuadrada. z sin cos tan sec csc cot trigonomtricas ordinarias. e asin acos atan asec acsc acot trigonomtricas inversas. e sinh cosh tanh sech csch coth trigonomtricas hiperblicas. e o asinh acosh atanh asech acsch acoth trigonomtricas hiperblicas inversas. e o atan2(x,y) arcotangente de y/x con el argumento correcto entre y .

5.2.

Funciones de reorganizacin de matrices o

iplr(A) (vuelta izquierda-derecha) devuelve la matriz con las columnas en el orden inverso. ipud(A) (vuelta arriba-abajo) devuelve la matriz con las las en el orden inverso. rot90(A,n) (rotacin 90o ) devuelve la matriz rotada 90o en el sentido de las agujas del reloj el n mero de o u veces indicado por n. Si n se omite se supone 1. reshape(A,n,m) convierte la matriz en una de n las y m columnas. Los elementos se toman por columnas. vec(A) devuelve un vector columna formado por las columnas de A puestas una debajo de la otra.

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

5 Funciones

5.3.

Funciones de anlisis de datos a

En este apartado se agrupan funciones que se caracterizan por realizar la operacin entre los elementos de o una columna en el caso de matrices, y entre todos los elementos en caso de vectores. Estas son muy habituales cuando tenemos almacenados en una matriz una serie de datos relacionados, colocados los del mismo tipo en la misma columna. Por ejemplo, si obtenemos la evolucin de un sistema ante una entrada, lo ms conveniente o a es colocar en una columna los instantes de tiempo, en otra el valor de la entrada y en otra el valor de la salida para cada uno de los instantes de tiempo. Las funciones ms interesantes de este tipo son: a sum(X) devuelve la suma de todos los elementos de la columna o vector. prod(X) devuelve el producto de todos los elementos de la columna o vector. sumsq(X) devuelve la suma del cuadrado de todos los elementos de la columna o vector . cumsum(X) devuelve la suma acumulada de todos los elementos de la columna o vector . cumprod(X) devuelve el producto acumulado de todos los elementos de la columna o vector. sumsq(X) devuelve la suma de los cuadrados de todos los elementos de la columna o vector. [M,i]=max(X) devuelve en M el mximo valor de todos los elementos de la columna o vector y, en i, en lugar a donde se produjo. [m,i]=min(X) devuelve en m el m nimo valor de todos los elementos de la columna o vector y, en i, en lugar donde se produjo. [S,i]=sort(X) devuelve en S los elementos de la columna o vector ordenados y, en i, los ndices, de la matriz original, que tiene la nueva ordenacin. o mean(X) media de todos los elementos de la columna o vector. median(X) mediana de todos los elementos de la columna o vector. std(X) desviacin estndar de todos los elementos de la columna o vector. o a cov(X,Y) calcula la matriz de covarianza entre dos observaciones. corrcoef(X,Y) calcula la matriz de correlacin entre dos observaciones o

5.4.

Funciones de comprobacin de condiciones o

any(X) realiza la o-lgica sobre los elementos de cada columna la matriz y devuelve vector la con el resultado o para cada una: verdad (1) o falso (0). all(X) realiza la y-lgica por columnas de la matriz. o isinf(X) matriz lgica con 1 donde existan Inf. o isnan(X) matriz lgica con 1 donde existan NaN (not a number ). o nite(X) matriz lgica con 1 donde existan elementos no innitos ni NaN. o [i,j]=nd(X) devuelve dos vectores con los ndice de la y columna de los elementos que son verdad (= 0). [i,j,v]=nd(X) devuelve adems el valor de dichos elementos. a nd(X) es equivalente a nd(vec(X)).

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

Alberto F. Hamilton Castro. CyC ULL

6 Matrices string

6.

Matrices string

Es una secuencia de caracteres encerrada entre comillas dobles () o simples () que da lugar a un vector la. Es preferible utilizar las comillas dobles para evitar la confusin con el operador transposicin. Es posible o o incluir secuencias de escape como las de C (precedidas de \). Los string se manejan como cualquier matriz, por ejemplo se pueden concatenar para crear string ms largos. a En el caso de denir una matriz con string en varias las, las las ms peque as se rellenan automticamente a n a con blancos para llegar a la longitud de la ms larga. a Ejemplo: si hacemos S=[Hola;tu]; tendremos que size(S) es [2,4]

6.1.

Funciones que crean string

Las funciones ms destacadas de este grupo son: a setstr(X) convierte una matriz numrica a una matriz de string. e int2str(n) devuelve en un string la representacin del entero n, No es muy exible, es preferible sprintf. o num2str(x) devuelve en un string la representacin del n mero x.No es muy exible, es preferible sprintf. o u blanks(n) Devuelve un string de n blancos.

6.2.

Funciones de bsqueda y reemplazo u

delblank(s) borra los espacios nales del string. substr(s,inicio,largo) devuelve la subcadena de s desde inicio y longitud largo, es equivalente a s(inicio:inicio+largo1). ndstr(s,t,NoSolapar) devuelve un vector con todas las posiciones en que la cadena t aparece en la cadena s. Por defecto se consideran las ocurrencias solapadas, pero si se especica el 3er. parmetro a 1 se cambia a este comportamiento. index(s,t) devuelve el ndice del primer lugar donde aparece la cadena t en la cadena s, o 0 si no aparece. rindex(s,t) devuelve el ndice del ultimo lugar donde aparece la cadena t en la cadena s, o 0 si no aparece. split(s,t) devuelve una matriz string con las piezas en que se puede dividir s separando por la cadena t. strrep(s,x,y) remplaza en s todas las ocurrencias de la cadena x por la y.

6.3.

Funciones de conversin de string o

toascii(s) devuelve en una matriz los cdigos ASCII de los caracteres de s. o str2num(s) convierte la cadena de caracteres en el n mero representado. u tolower(s) pasa a min sculas las letras de s. u toupper(s) pasa a may sculas las letras de s. u Existe un conjunto de funciones que sirven para realizar cambios de base numrica, representando la binaria y e hexadecimal en string: bin2dec(s) devuelve el n mero decimal equivalente al n mero binario representado por la cadena s. u u hex2dec(s) devuelve el n mero decimal equivalente al n mero hexadecimal representado por la cadena s. u u dec2bin(n) devuelve una cadena con la representacin binaria del n mero n. o u dec2hex(n) devuelve una cadena con la representacin hexadecimal del n mero n. o u

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

10

Alberto F. Hamilton Castro. CyC ULL

Grcos a

6.4.

Funciones lgicas o

strcmp(s1,s2) compara los dos string y devuelve 1 si son iguales. isstr(s) devuelve 1 si se trata de una matriz string y 0 en caso contrario. Otras funciones son elemento a elemento y devuelven un vector lgico de la misma longitud que el string o poniendo a 1 los elementos correspondiente a los caracteres que cumplen la condicin. Las funciones son: o isalnum isalpha isascii iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit

7.

Polinomios

En octave los polinomios se representan mediante un vector con los coecientes en orden descendente. Dado e el vector p=[c1,c2, ... cN], ste representa al polinomio p(x) = c1 xN 1 + c2 xN 2 + ... + cN 1 x + cN Las funciones que realizan operaciones en polinomios son: polyout(p,x) muestra representacin del polinomio p, usando como variables independiente la indicada en o string x, por defecto s. polyval(p,X) eval a el polinomio para todos los elementos de X. u polyvalm(p,A) para A matriz cuadrada, eval a el polinomio en sentido matricial. u roots(p) obtiene las ra del polinomio. ces poly(A) siendo A matriz cuadrada, devuelve el polinomio caracter stico. poly(r) siendo r un vector, devuelve el polinomio cuyas ra son los elementos de r. ces conv(p,s) devuelve el producto de dos polinomios. [c,r]=deconv(x,y) devuelve el cociente y el resto de la divisin del polinomio x entre el y. o polyderiv(p) devuelve el polinomio derivada. polyt(x,y,n) devuelve el polinomio de orden n que mejor se ajusta, en m nimos cuadrados, a los puntos formados por (x,y). polyreduce(p) reduce, si es posible, el vector del polinomio p quitando los ceros a la izquierda. [r,p,k,e]=residue(num,den) calcula la descomposicin en fracciones simples del cociente del polinomio num o entre el den. r son los residuos (numeradores), p son los polos (denominadores), k es el cociente (si grado del numerador mayor que el del denominador), y e son los exponentes para cada denominador. Es decir:
num(s) den(s)

= k(s) +

r(1) (sp(1))e(1)

r(2) (sp(2))e(2)

+ ...

8.

Grcos a

Para la realizacin de los grcos el Octave invoca a el paquete Gnuplot. Los siguientes comandos invocan o a directamente a los correspondientes de Gnuplot: gplot invoca al comando plot de Gnuplot. gshow invoca al comando show de Gnuplot. gset invoca al comando set de Gnuplot. replot invoca al comando del mismo nombre en Gnuplot. Mediante estos se tiene un mayor control sobre la grca y se puede, por ejemplo, imprimir la grca a chero a a en numerosos formatos. Para ver los detalles, mirar ayuda invocando al propio Gnuplot.

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

11

Alberto F. Hamilton Castro. CyC ULL

Grcos a

8.1.

Grcas en dos dimensiones a

Los comandos propios del Octave, que deben usarse de manera preferente, son: plot funcin que produce grcas bidimensionales con escalas lineales en ambos ejes. Existen varias formas de o a invocar a plot: plot(y) donde y es un vector, representa las componentes del vector frente a sus ndices plot(x,y) donde tanto x como y son vectores, se representarn los elementos de y frente a los de x, por a ello las longitudes han de coincidir plot(x,Y) donde x es vector e Y matriz, se representan las columnas de Y frente a los valores de x. En caso que la longitud de las columnas no coincida con la longitud de x, se intentar con las las. a plot(X,y) donde X es matriz e y vector, se representar el vector y frente a las columnas de X. En caso a que la longitud de las columnas no coincida con la longitud de y, se intentar por las las. a plot(X,Y) donde tanto X como Y son matrices, las columnas de Y se representan frente a las columnas de X, por ello las dimensiones han de coincidir. plot(x1,y1) donde x1 e y1 son escalares, se representar un unico punto. a plot(X,Y,formato) donde X e Y son de cualquiera de las formas anteriores y el formato especica la forma en que se representar la l a nea. plot(X1,Y1,fm1,X2,Y2,fm2,....) es posible combinar varias llamadas a plot colocando los argumentos necesarios unos a continuacin de otros. El argumento de formato se puede omitir. o Los posibles formatos del comando plot son los siguientes - segmento uniendo los datos, formato por defecto. . puntos peque os en cada dato. n @ puntos en cada dato. -@ l neas uniendo cada dato con punto en cada dato. grca estilo impulso, l a neas de 0 al punto. L grca estilo escalera (vase stairs). a e n donde n es d gito de 1 a 6, indica color. Algunos colores se pueden especicar por su inicial inglesa: r, g, w, etc. nm donde n y m son d gitos de 1 a 6, n indica color y m estilo de punto, los estilos de puntos se pueden indicar por un s mbolo: *, +, o , etc. La relacin entre el n mero y el color y el estilo de l o u nea es la siguiente: N mero u 1 2 3 4 5 6 Color rojo verde azul magenta cian marrn o Letra color r g b m c Tipo de punto circulo cruces cuadrado aspa triangulo asterisco Simbolo punto o + x *

semilogx(arg) recibe los mismos argumentos que plot pero utiliza una escala logar tmica en el eje x. semilogy(arg) recibe los mismos argumentos que plot pero utiliza una escala logar tmica en el eje y. loglog(arg) recibe los mismos argumentos que plot pero utiliza una escala logar tmica en los eje x e y. polar(arguemto,modulo) hace trazo bidimensional utilizando el ngulo y la distancia al origen como argua mento. Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp 12

Alberto F. Hamilton Castro. CyC ULL

Grcos a

errorbar(arg) se le ha de pasar junto a los puntos los errores cometidos en cada dimensin (x e y) y representa o las barras de error en cada dimensin. Existen tambin las funciones equivalentes loglogerr, semilogxerr, o e semilogyerr. bar(x,y) donde x e y son vectores de las mismas dimensiones, produce el diagrama de barras de y frente a x. x debe tener valores en orden ascendente. bar(y) donde y es vector, representa los valores de y frente a sus ndices. [xb,yb]=bar(x,y) no realiza la representacin, sino que devuelve los vectores xb e yb que se pueden utilizar o posteriormente con plot(xb,yb) hist(x,y) representa el histograma con los datos suministrados. stairs(x,y) donde x e y son vectores de datos, produce el trazo en escalera t pico de la salida de un retenedor de orden 0. x ha de tener valores en orden ascendente. [xb,yb]=stairs(x,y) no realiza la representacin, sino que devuelve los vectores xb e yb que se pueden utilizar o posteriormente con plot(xb,yb).

8.2.

Comandos para el control de la grca a

axis([minx maxx miny maxy minz maxz]) especica los l mites entre los que se representa la grca. Los a rangos para el eje y y z se pueden omitir, es decir, se puede jar el rango para el eje x, los ejes x e y, o los ejes x, y y z. axis vuelve al estado de autoescalado. replot actualiza la grca seg n las modicaciones que se hayan introducido posteriormente al plot, sobre a u todo en los ejes. Esta actualizacin se puede hacer automticamente haciendo automatic replot=1. o a clearplot borra la ventana de grcos actual . a clg equivalente a clearplot. closeplot cierra la ventana de grcos y el Gnuplot asociado a hold on mantiene el grco actual en la ventana, los sucesivos se a adirn al actual. a n a hold o desactiva la permanencia del grco, los siguientes borraran la ventana. Este es el estado por defecto. a hold cambia el estado actual del hold entre on y o. ishold() devuelve 1 si el grco est mantenido y 0 en caso contrario. a a

8.3.

Etiquetas en la grca a

grid coloca rejilla en la grca. a title(string) coloca el t tulo a la grca. a xlabel(strig) ylabel(string) zlabel(string) coloca las etiquetas en los distintos ejes.

8.4.

Grcas tridimensionales a

[X,Y]=meshdom(x,y) dados los vectores con los puntos a considerar en el eje x e y genera las matrices X e Y necesarias para la funcin mesh. o mesh(X,Y,Z) a partir de las matrices X e Y de meshdom, y la matiz de con los valores z en esos puntos, genera la grca tridimensional. a

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

13

Alberto F. Hamilton Castro. CyC ULL

Control de ujo

8.5.

Mltiples grcas u a

A partir de la versin 3.6, gnuplot soporta m ltiples grcas. Desde octave es posible saber si est disponible o u a a esta capacidad consultando la variables gnuplot has multiplot. Es ese caso, es posible enviar los siguientes comandos desde octave: multiplot(nx,ny) divide la ventana en ny las y nx columnas de subgrcas. a mplot versin modicad de plot para avanzar automticamente a la siguiente subgrca. o a a subwindow(xn,yn) situa la subgrca actual para el siguiente plot. a oneplot() vuelve al modo de una unica grca en la ventana. a plot border() Permite especicar bordes alrededor de las subgrcas. a subplot(f,c,a) equivalente a multiplot(c,f); subwindow(floor(a/c),rem(a,c)) subplot(fca) dem que el anterior pero los tres parmetros se pasan como los tres d a gitos decimales de un unico parmetro (compatibilidad con MATLAB). a

8.6.

Mltiples ventanas u

En el entorno X11, y si gnuplot lo soporta, es posible abrir varias ventanas grcas. Para saber si es posible a se debe consultar la variable gnuplot has frames. gure(n) sit a la ventana actual para los siguientes comandos como la n-sima, abrindola si no existe. u e e

9.

Control de ujo

Las estructuras de control de ujo permiten la ejecucin condicional y la repeticin de un conjunto de o o comandos. Las condiciones que aparecen en estas estructuras son expresiones que, como todas las de octave, devuelven una matriz. Habitualmente estas expresiones son de relacin o lgicas, pero es posible cualquier expresin. Suele o o o ser aqu donde aparecen las expresiones lgicas de circuito corto. o La condicin ser cierta si todos los elementos de la matriz resultado son distintos de cero, es decir, se realiza o a la y-lgica de todos los elementos. La condicin es falsa si alg n elemento es cero. o o u

9.1.

Estructura if
if condicin o

Es similar a la que aparece en otros lenguajes de alto nivel. Se construye de la siguiente manera:

sentencias-entonces
else

sentencias-caso-contrario
endif

La parte else es opcional. La sentencias-entonces se ejecutan si se cumple la condicin, en caso contrario se o ejecutan las sentencias-caso-contrario. En estas sentencias puede aparece, como es lgico, otras estructuras de control. Tambin es posible concateo e nar condiciones de la siguiente manera:
if condicin-1 o

sentencias-entonces-1
elseif condicin-2 o

sentencias-entonces-2 Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp 14

Alberto F. Hamilton Castro. CyC ULL

Control de ujo

:
else

sentencias-caso-contrario
endif

9.2.

Estructura while
while condicin o

Se construye de la siguiente manera:

sentencias
endwhile

Se ejecutan las sentencias mientras la condicin sea verdadera, esta condicin se eval a tras cada bucle. Si la o o u condicin es falsa la primera vez, las sentencias no se ejecutan ni una sola vez. o Esta estructura se debe utilizar cuando el n mero de iteraciones que se deben realizar dependen, de alguna u manera, del resultado de las sentencias.

9.3.

Estructura for
for var = expresin o

Se construye de la siguiente manera:

sentencias
endfor

En este caso se eval a la expresin al comenzar. Las sentencias se ejecutan tantas veces como columnas tenga u o el resultado de la expresin, asignndose a la variable var, en cada iteracin, una de las columnas, comenzando o a o por la primera. La expresin slo se eval a una vez, antes de comenzar, y no despus de cada iteracin como o o u e o en el caso de la estructura while. Si queremos un bucle que se ejecute N veces y tenga una variable contador i, lo hacemos de la siguiente manera:
for i=1:N

sentencias
endfor

como el rango genera un vector la, i tendr los valores 1, 2, ..., N, en cada iteracin. a o

9.4.

Sentencia break

Salta fuera del bucle for o while ms interno que la contiene, por lo tanto, slo debe situarse dentro de a o dichos bucles.

9.5.

Sentencia continue

Salta inmediatamente a la siguiente iteracin del bucle for o while ms interno que la contiene, por lo tanto, o a slo debe situarse dentro de dichos bucles. En el caso del bucle while, se pasa a evaluar la condicin. o o

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

15

Alberto F. Hamilton Castro. CyC ULL

10 Ficheros de comandos

9.6.

Funciones

Esta estructura permite denir un conjunto de sentencias que puede ser invocada posteriormente escribiendo el nombre de la funcin. o Se construye de la siguiente manera:
function [sal1 , sal2 ,...] = nombre (ent1 , ent2 , ...)

sentencias
endfunction

La especicacin de parmetros de salida (sal1, sal2, ...)y entrada (ent1, ent2, ...)es opcional y depende del o a comportamiento deseado para la funcin. o Consideraciones importantes: Todas las variables y parmetros que aparecen en la funcin son locales a esta, es decir, existen en un a o espacio de trabajo distinto del existente en el entrono. Tampoco podemos acceder al espacio de trabajo del entorno. La unica manera de pasar datos a una funcin es mediante los parmetros de entrada, que se pasan por o a valor, es decir, no se modican las variables utilizadas en la invocacin aunque se modiquen los parmeto a ros correspondientes dentro de la funcin. Por ello los parmetros de entrada pueden ser expresiones, cuyo o a resultado es el que pasa a la funcin. o La unica manera de recibir datos de una funcin es mediante los parmetros de salida. Los parmetros de o a a salida en la invocacin deben ser identicadores de matrices o expresiones de indexacin. o o En la denicin de la funcin se indican unicamente los parmetros de entrada y salida mximos que o o a a soporta la funcin, pero la funcin se puede invocar con un n mero menor de parmetros, incluso ninguno. o o u a Los parmetros de entrada slo estarn denidos si en la invocacin se han indicado sucientes parmetros a o a o a de entrada. Intentar acceder a un parmetro de entrada que no est denido produce un error. a a Los parmetros de salida nunca estn denidos inicialmente. Slo lo estarn una vez que aparezcan a la a a o a izquierda de una asignacin, a partir de ese momento se pueden utilizar normalmente. o No hay inconveniente en asignar valores a parmetros de salida que no se han solicitado en la invocacin. a o Dichos valores se perdern, salvo el del primer parmetro que es el valor que devuelve la funcin aunque a a o no se le soliciten parmetros de salida. a Existen una serie de funciones que son de utilidad dentro de una funcin: o nargin devuelve el n mero de parmetros de entrada en la invocacin actual de una funcin. u a o o nargout devuelve el n mero de parmetros de salida en la invocacin actual de una funcin. u a o o return termina la ejecucin de la funcin de manera normal, como si se hubiera llegado al nal de la misma. o o error(s) termina la funcin con error, presentando como mensaje el string s. Si ste no termina con \n se o e presenta la traza completa de las funciones que se han atravesado hasta llegar al error. warning(s) saca el mensaje s precedido por warning: y continua la ejecucin. Sirve para hacer advertencias o al usuario. keyboard(mensaje) presenta el mensaje y permite que el usuario introduzca expresiones que son evaluadas y su resultado presentado. Se sigue presentando el mensaje hasta que se de el comando exit o quit. Si se ejecuta dentro de una funcin, las variable manejadas son las locales, por lo que es util para depuracin. o o

10.

Ficheros de comandos

Es posible ejecutar comandos que estn en un chero. Estos cheros son de texto normal y deben de tener a la extensin .m, por lo que suele llamrseles tambin cheros-m. o a e En estos cheros es posible poner comentarios que comienzan por el carcter # y contin an hasta el nal de a u la l nea. Las l neas de comentario que aparecen juntas al principio del chero o tras la denicin de una funcin o o representan la ayuda, y son presentadas si ejecutamos: help nombre Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp 16

Alberto F. Hamilton Castro. CyC ULL

11 Estructuras

10.1.

Ficheros de funcin o

Son cheros que contienen unicamente la denicin de una funcin. Se deben llamar con el mismo nombre o o que la funcin. Cuando se invoca a una funcin, Octave la busca en el espacio de trabajo actual. Si no existe o o all busca si existe un chero con ese nombre y la extensin .m en el directorio actual y el los directorios de , o o una lista (LOADPATH). Si existe lo carga en memoria y ejecuta la funcin. En las siguientes invocaciones Octave slo comprueba si el chero ha sido modicado, si es as lo carga nuevamente, en caso contrario utiliza la copia o existente en memoria.

10.2.

Ficheros de script

Estos cheros contiene comandos normales que se ejecutan como si fueran tecleados directamente en el entorno, es decir, trabajan sobre el espacio de trabajo global, por lo que pueden acceder a las variables existentes, modicarlas o crear nuevas. Para invocarlo basta poner el nombre del chero, sin la extensin .m. o Es posible denir funciones dentro de un chero script, pero el primer comando ejecutable no puede ser una denicin de funcin ya que, en caso contrario, el chero se considerar de funcin. o o a o

11.

Estructuras

Octave incluye, adems de las matrices, otro tipo de datos consistentes en estructuras que, bajo un unico a identicador, pueden almacenar varias matrices o estructuras. Son equivalentes a las matrices en cuanto a la asignacin y paso como parmetros de entrada o salida a funciones. o a Para crear o acceder a los campos de estas estructuras se coloca el nombre de la estructura, un punto . y el nombre del campo. Al igual que ocurre con las matrices, no es necesario declarar a un identicador como estructura, el hecho de aparecer a la izquierda de un punto le conere ese tipo. Ejemplo de denicin de varios campos de una estructura: o
estru.a=1 estru.b=[1,2,3;4,5,6] estru.c=Hola

Las estructuras se presentan indicando el nombre y contenido de sus campos entre llaves ({}). Cuando existen estructuras anidadas por defecto slo se representa hasta el segundo nivel. Este comportamiento se puede o modicar modicando la variable struc levels to print.

11.1.

Funciones propias de las estructuras

is struct(est) devuelve 1 si su parmetro es una estructura. a struct contains(est,nombre) devuelve 1 si la estructura est contiene el campo nombre (que ha de ser un string). struct elements(est) devuelve una matriz de strings con los nombres de todos los campos de la estructura.

11.2.

Recorrido de los campos de una estructura

Existe un formato especial del bucle for que permite recorrer una estructura. Se construye de la siguiente manera:
for[ valor , nombre ]= expresin o

sentencias
endfor

En este caso, en cada iteracin se le asigna a la variable valor el contenido de uno de los campos de la estructura o y en la variable nombre el nombre de dicho campo. Se repite para todos los campos de la estructura. Es imprescindible que expresin devuelva una estructura. o

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

17

Alberto F. Hamilton Castro. CyC ULL

12 Comandos entrada/salida

12.
12.1.

Comandos entrada/salida
Por terminal

disp(x) presenta el contenido del parmetro pero sin indicar su nombre, como ocurre si evaluamos directamente a su nombre. format opcin permite controlar la forma en que se realiza la presentacin de los n meros. Las principales o o u opciones son: short trata de representar, en punto jo, 5 cifras signicativas en un mximo de 10 caracteres. Si no es a posible conseguirlo en todos los elementos de una matriz utiliza exponente. long trata de representar, en punto jo, 15 cifras signicativas en un mximo de 24 caracteres. Si no es a posible conseguirlo en todos los elementos de una matriz utiliza exponente. short e dem que format short pero en punto otante (presentando exponente). long e dem que format long pero en punto otante (presentando exponente). input(mensaje) presenta contenido del string mensaje y espera que se teclee en el terminal una expresin, la o cual es evaluada y devuelta. input(mensaje,s) dem que antes, pero lo tecleado se devuelve en un string y no es evaluado. menu(titulo,opcion1,...) presenta un men con titulo y las distintas opciones y devuelve el n mero de la u u opcin elegida por el usuario. o kbhit() lee una unica pulsacin en el terminal y devuelve el carcter pulsado en un string. o a

12.2.

Por chero

Estas funciones permiten salvar y recuperar variables a chero en distintos formatos: save opciones chero v1 v2 ... salva las variables indicadas, o todas las del espacio de trabajo actual si no se indica ninguna, en el chero. Las variables se pueden indicar utilizando comodines (? * [lista]). Las opciones sirven para indicar el formato en que se salvaran las variables: -ascii formato de texto de Octave. -binary formato binario de Octave. -oat-binary formato binario de Octave, pero slo en simple precisin. o o -mat4-binary formato binario de MATLAB versin 4. o -mat-binary formato binario de MATLAB versin 6. o load opciones chero v1 v2 ... carga las variables especicadas del chero, o todas si no se especican variables. Octave detecta el formato del chero a cargar. Por defecto Octave se niega a sobreescribir una variable existente en el espacio de trabajo. La opcin ms interesante es: o a -force si es necesario, sobreescribe las variables en memoria.

12.3.

Entrada y salida tipo C

Estn disponibles un conjunto completo de funciones de acceso a cheros tanto de texto como binarios, cuyo a nombre, sintaxis y funcionalidad sigue los estndares del lenguaje de programacin C. De esta manera es posible a o un control total sobre el manejo de cheros. Las ms destacadas son: printf, sprintf, fprintf, fscanf, fread, fwrite. Para ms informacin consultar el a a o manual o la ayuda.

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

18

Alberto F. Hamilton Castro. CyC ULL

13 Otros Comandos de inters e

13.
13.1.

Otros Comandos de inters e


Generales del entorno

quit(estado) sale del octave devolviendo, si se desea, el cdigo de estado indicado. o exit(estado) dem que quit. help concepto presenta la ayuda disponible sobre el tema solicitado, funcin, comando, etc. o diary opcin permite registrar los comandos y respuestas que aparecen en el terminal. Las opciones posibles o son: on comienza la grabacin en el chero diary del directorio actual. o o detiene la grabacin o chero comienza la grabacin en el chero indicado. o sin opcin cambia el estado actual de grabacin o o echo opcin controla si los comandos son presentados antes de su ejecucin. Las opciones posibles son: o o on presente las comandos que se ejecutan en los cheros script. o desactiva la presentacin de comandos. o on all activa la presentacin de comandos en scripts y cheros de funcin. o o eval(string) ejecuta el comando representado por string en el espacio de trabajo actual.

13.2.

Manejo de identicadores

Existe un conjunto de funciones para manejar los identicadores en el espacio de trabajo, las principales son: who opciones patron lista los identicadores existentes que encajan con el patrn, o todos si ste no se o e indica. El patrn puede utilizar los comodines: * ? [lista]. Las opciones posibles son: o -all lista todos los s mbolos: variables internas y funciones internas adems de las funciones y variables a del usuario. -builtins lista variables y funciones internas. -functions lista las funciones denidas por el usuario. -variables lista las variables denidas por el usuario. -long presenta ms detalles sobre cada uno de los identicadores: tipo, tama o, etc. a n whos es equivalente a who -long clear opciones patrn borra los identicadores del usuario que concuerdan con el patrn, o todos si no se o o especica patrn. La unica opcin posible es: o o -x borra todos los identicadores excepto los que concuerdan con el patrn. o exist(nombre) devuelve: 1 si existe una variable con nombre, 2 si existe chero de funcin con nombre.m, 0 o en caso contrario,3 si es el nombre de un chero .oct o .mex en el path de Octave, 5 si es el nombre de una funcin propia, 7 si es el nombre de un directorio, o 103 si es el nombre de una funcin no asociada o o a un chero (introducida por l nea de comandos). document(identicador,texto) coloca el texto como documentacin del identicador. o

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

19

Alberto F. Hamilton Castro. CyC ULL

13 Otros Comandos de inters e

13.3.

Manejo del directorio actual

El directorio actual es utilizado para la b squeda de los cheros-m y para salvar los cheros de datos. Las u principales funciones relacionadas con el sistema de cheros son: pwd() devuelve en un string el directorio actual chdrir nuevoDir cambia el directorio actual al especicado, o al directorio ra del usuario si no se especica z ninguno. cd dem que chdir dir lista los cheros del directorio actual. ls dem que dir

13.4.

Control del tiempo

Las principales funciones de este grupo son: clock() devuelve un vector de 6 componentes con: a o, mes, d hora, minuto y segundo actuales. n a, pause(segundos) suspende la ejecucin del programa el n mero de segundos indicado. Si no se indican seo u gundos se espera hasta que se pulse una tecla. sleep(segundos) suspende la ejecucin del programa el n mero de segundos indicado. o u tic() toc() permiten cronometrar la duracin de un proceso. tic() pone a cero el cronmetro mientras que o o toc() devuelve el n mero de segundos que han transcurrido. u

Id: ApuntesOctave.lyx,v 3.6 2006/11/06 16:03:04 alberto Exp

20

También podría gustarte