end

Anuncio
Taller de Informática I
Segunda Clase: Programación
Año 2014
Ejercicios de la clase pasada:
1) Realizar una función que dados tres números que representan notas,
retorne el promedio de dichos valores.
2) Realizar una función que reciba como argumento N y retorne como
salida la matriz de NxN con cincos en la diagonal y ceros en el resto
de las componentes.
Recordemos
• Algoritmo: Una secuencia paso a paso de
instrucciones bien definidas que describen como
realizar un cómputo (ej. algoritmo de división de
Euclides).
• Lenguaje de programación: Lenguaje artificial
diseñado para abstraer las instrucciones que puede
ejecutar una computadora (ej. Matlab).
• Programa: La transcripción de un algoritmo en un
lenguaje de programación dado.
Hace falta conocer un lenguaje de programación para
diseñar un algoritmo?
Lenguajes de programación
En los lenguajes de programación se pueden
reconocer dos partes:
• Sintaxis: las posibles combinaciones de
símbolos que se pueden entender como
expresiones correctas.
• Semántica: el significado asociado a una
expresión.
Expresiones válidas
•
•
•
•
•
•
•
1
I+2
I + 2 * -3
(1 + 2) * -3
0 == 1 – 1
[1; 2; 3; 4]
2 * [1 0; 0 1]
Expresiones inválidas
•
•
•
•
•
•
•
•
I (1
I32
+12
(1 + 2) ==
{3; 2}
( 3, 2 )
[0; 2; 4; 6; ....... ; 20]
[1 0; 0 1] (1)
CARACTERES ESPECIALES
[ ] Se utilizan para formar vectores y matrices
( ) Define precedencia en expresiones aritméticas. Encierra argumentos
de funciones en forma usual
,
Separador de elementos de una matriz, argumentos de funciones y
declaraciones en líneas con declaraciones múltiples
;
Termina filas de una matriz, separador de declaraciones
% Comentario
Ejemplos:
[6.0 9.0 3.4 ]
sqrt(2)
for i=1:n, a(i)=0, end
for i=1:n; a(i)=0; end
% inicia vector a en 0
Tipos
Los tipos son los conjuntos de los distintos
valores posibles.
•
•
•
•
•
Integer: 1, 2, 3, etc.
Float-Point: 0.5, 1.7, 42.0, pi, etc.
Logical: true, false.
Character: „a‟, „b‟, „c‟, etc.
Matrix: [1.7], [ „h‟, „o‟, „l‟, „a‟]; [1 0; 0 1]; etc.
En general cada tipo de dato tiene asociadas
ciertas operaciones.
Variables
Las variables son nombres con los que podemos referirnos
al resultado de cómputos anteriores.
•
•
•
•
Tres_x_pi = 3.0 * pi
Booleana = false
cadenaHola = 'hello'
Matriz_Identidad = [1 0; 0 1]
• Las variables nos abstraen del manejo de la memoria de
la computadora. Los valores asignados en una variable
son almacenados en la memoria.
• Matlab es case-sensitive por lo que la variable Booleana
es distinta que booleana.
Asignación:
• Es posible guardar el resultado de una operación
cualquiera en una variable.
• Para eso debemos escribir:
>> x = 2 + 2
x =4
• Si una instrucción la finalizamos con punto y
coma el resultado de la misma no se muestra:
>> x=17^(1/3);
>> test=x^3
test = 17.0000
Vectores
• Vectores fila; elementos separados por blancos o comas
>> v =[2 3 4 7 9 8]
• Vectores columna: elementos separados por punto y coma (;)
>> w =[2;3;4;7;9;8]
• En MATLAB es posible transformar un vector fila en un vector columna y
viceversa (hallar su traspuesta) empleando una comilla simple:
>> vt = v‟
• Dimensión de un vector w: length(w)
• Generación de vectores fila:
▫ Especificando el incremento h de sus componentes v=a:h:b
▫ Linealmente espaciados n: linspace(a,b,n) (por defecto n=100)
▫ Componentes logarítmicamente espaciadas logspace(a,b,n) (n
puntos logarítmicamente espaciados entre 10a y 10b. Por defecto n=50)
Ejemplo de programa:
• Dado un vector de dimención 2 y un escalar se
busca dibujar el vector y el resultado del producto
del vector por el escalar.
• Hacer primero
>> help drawvec
Ejemplo: producto escalar.
• El producto por un escalar es tan intuitivo como
la suma de vectores:
▫ v=[1 6];
▫ w=-3*v; drawvec(v, 'red', 20);
▫ hold on; drawvec(w, 'blue', 20);
• Obsérvese que -3v es un vector tres veces más
largo que v y apuntando en sentido contrario.
Ejemplo: mean
• Programar una función que dado un vector
retorne el promedio de todos sus valores.
• Qué pasa si como entrada le damos una matrix?
Vectores y matrices
Definición de matrices:
• Generación de matrices:
▫
▫
▫
▫
Generación de una matriz de ceros, zeros(n,m)
Generación de una matriz de unos, ones(n,m)
Inicialización de una matriz identidad eye(n,m)
Generación de una matriz de elementos aleatorios rand(n,m)
• Añadir matrices: [X Y] columnas, [X; Y] filas
Operaciones con vectores y matrices
Operaciones con escalares:
v: vector, k: escalar:
•
•
•
•
•
•
•
v+k adición o suma
v-k sustracción o resta
v*k multiplicación
v/k divide cada elemento de v por k
k./v divide k por cada elemento de v
v.^k potenciación de cada componente de v a k
k.^v potenciación k elevado a cada componente de v
Operaciones con vectores y matrices
•
•
•
•
•
•
•
•
•
•
+ adición o suma
– sustracción o resta
* multiplicación matricial
.* producto elemento a elemento
^ potenciación
.^ elevar a una potencia elemento a elemento
\ división-izquierda
/ división-derecha
./ y .\ división elemento a elemento
matriz traspuesta: B=A’ (en complejos calcula la traspuesta
conjugada, sólo la traspuesta es B=A.’)
Ejemplo: main_operaciones_matrices.m
Funciones para vectores y matrices
• sum(v) suma los elementos de un vector
• prod(v) producto de los elementos de un vector
• dot(v,w) producto escalar de vectores
• cross(v,w) producto vectorial de vectores
• mean(v) (hace la media)
• diff(v) (vector cuyos elementos son la resta de los elemento de v)
• [y,k]=max(v) valor máximo de las componentes de un vector (k indica la
posición), min(v) (valor mínimo). El valor máximo de una matriz M se
obtendría como max(max(M)) y el mínimo min(min(v))
• Aplicadas algunas de estas funciones a matrices, realizan dichas operaciones por
columnas.
Funciones para vectores y matrices
• [n,m]=size(M) te da el número de filas y columnas
• matriz inversa: B=inv(M), rango: rank(M)
• diag(M): Obtencion de la diagonal de una matriz. sum(diag(M))
calcula la traza de la matriz A. diag(M,k) busca la k-ésima
diagonal.
• norm(M) norma de una matriz (máximo de los valores absolutos
de los elementos de A)
• flipud(M) reordena la matriz, haciendo la simétrica respecto de un
eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simétrica
respecto de un eje vertical
• [V, landa]=eig(M) da una matriz diagonal landa con los
autovalores y otra V cuyas columnas son los autovectores de M
Ejemplo: main_operaciones_matrices.m
Resumen: vectores y matrices
• MATLAB es un entorno interactivo que utiliza como tipos
de datos básicos vectores y matrices de flotantes que no
requieren ser dimensionados.
• MATLAB permite distinguir vectores fila de vectores
columna y calcular la transpuesta de un vector.
• En MATLAB es posible sumar vectores, multiplicarlos por
un escalar, calcular su módulo o calcular su producto
escalar.
• MATLAB permite definir matrices y acceder a sus
componentes elementales; también es posible extraer
fácilmente submatrices así como multiplicar matrices y
vectores.
Funciones
Las funciones son procedimientos con nombres que
pueden requerir múltiples argumentos y retornar
distintos resultados dependiendo de los valores de
los argumentos.
Es una tarea independiente que puede o no depender
de variables externas. Lo ideal es que funcione como
“caja negra”, es decir, que se la pueda invocar desde
cualquier programa cada vez que se la necesite y que
realice una función bien específica
Funciones internas
Ejemplos:
•
•
•
•
size( [1 0; 0 1] )
resul = or( true, false )
disp( [1 2 3 4])
sum( [1 2 3 4])
Ventajas de utilizar funciones
• Solamente se escribe una vez. Esto evita errores
involuntarios (pero siempre presentes) de transcripción.
• Si una función es probada y funciona bien, funcionará
bien cada vez que se use (siempre y cuando el uso sea el
correcto). Esta es una ventaja importante cuando estamos
buscando errores presentes en nuestros programas,
puesto que evaluamos pedazos cada vez más pequeños lo
que facilita la detección de errores.
• Son portables. Una misma función puede ser útil para
distintos casos, distintos programas y distintos
programadores
• Código más limpio. Al usar funciones reducimos las líneas
de código de nuestro programa y por lo tanto se hacen
mucho más fáciles de leer y validar su correctitud.
• Parte un programa en varios subprogramas
Partes de una función
Se pueden observar dos lados de una función:
la invocación y la definición.
Invocación: Se refiere a la llamada a la función.
Ejemplo: >> y = sin(pi);
En este caso, sin representa el nombre de la función, pi
es el argumento y la variable y el objeto de salida.
Partes de una función
Definición: Se refiere al texto de la función con el desarrollo
del cuerpo de la misma.
En nuestro caso, se trata de archivos .m donde volcamos, en
sintaxis correcta, el texto de la función como un conjunto de
sentencias válidas:
Ejemplo:
Palabra reservada
function salida = nombreFuncion (lista_de_parametros)
.. %sentencias
salida = ...
end
Aquí se guarda el
resultado final
Argumentos,
separados por
coma
Variables de la función
¿Qué sucede si por línea de comandos quiero saber qué valor tienen las
variables a y b de la función o la variable salida?
>> a
error: „a' undefined near line 2 column 1
El mensaje de error indica que la variable „a‟ no es conocida en este
contexto. Es decir, las variables de la función sólo tienen validez dentro
de la función misma.
Se puede realizar el siguiente experimento:
>> a=123
a = 123
>> suma(3,4)
ans = 7
>> a
a = 123 y no 3 que es el valor que toma a dentro de la función!!!
Esto nos indica que las variables poseen diferentes alcances
Variables de la función
• Las variables declaradas en el intérprete
(por línea de comando) tienen validez en el
intérprete
• Las variables dentro de una función tienen
alcance dentro de la misma función. No
interfieren con variables con el mismo
nombre declaradas fuera de la misma.
• Se dice entonces que las variables son
locales a la función
OPERADORES RELACIONALES
Los operadores relacionales de MatLab son:
<
menor que
<=
menor o igual a
>
mayor que
>=
mayor o igual a
==
igual a
~=
no igual a
OPERADORES LÓGICOS
Los operadores &, | y ~ son los operadores de lógica "y", "ó" y "no"
respectivamente.
El resultado de C = A & B es una matriz cuyos elementos son unos donde A y B
sean ambos distintos de cero, y ceros donde A ó B sean cero. A y B deben de ser
matrices con las mismas dimensiones, a menos que una de ellas sea un escalar.
El resultado de C = A | B es una matriz cuyos elementos son unos donde A ó B
tienen un elemento diferente de cero, y ceros donde ambas tienen elementos
cero. A y B deben de ser matrices con las mismas dimensiones, a menos que
una sea un escalar.
El resultado de B ~ = A es una matriz cuyos elementos son uno donde A tiene
un elemento cero, y ceros donde A tiene elementos diferentes de cero.
Expresión Condicional
Es de especial interés que un programa pueda tomar
distintas decisiones a medida que evalúa los valores de
las expresiones que lo conforman.
La sintaxis del condicional requiere dar una
expresión lógica, a continuación todo el código que
debe ejecutarse si la condición resulta verdadera y
finalmente la palabra clave end para marcar el final.
v = [1 2 3];
B = v' * v;
d = det(B);
if d == 0
disp('Determinante es cero');
end
Estructuras de control: condicional
•
Operaciones lógicas:
▫ >, <, >=,<=,== (igual)
▫ | (or), &(and)
▫ ~ (no), ~= (no igual)
if
end
if
else
end
if
elseif
else
end
▫ Ejemplo: main_condicional
Expresión Condicional
Si deseamos elegir un comportamiento
alternativo cuando la condición es falsa
podemos usar el if en conjunción con el else:
v = [1 2 3];
B = v' * v;
d = det(B);
if d == 0
disp('Determinante es cero');
else
disp('Determinante no es cero');
B = zeros(3,3);
end
Otra vez mean
• ¿Cómo debo modificar la función mean si el
vector de entrada es un vector columna?
Ejercitación
1) Escribir un programa que dados los goles del equipo local y los goles
del equipo visitante de un partido de futbol, indique que equipo ha
ganado (resultados posibles: “local”, “visitante” y “empate”).
2) El cuadrante de un punto (x; y) se puede determinar a partir del
signo de x e y. Escribir un programa que pida al usuario las
coordenadas x e y y que especifique a que cuadrante pertenece el
punto
3) Se desea representar con una letra la calificación de un alumno. Las
calificaciones son notas entre 1 y 10. Escribir un programa que pida
la nota y que indique la letra correspondiente:
A para calificaciones mayores o iguales a 9
B para calificaciones mayores o iguales a 8
C para calificaciones mayores o iguales a 7
D para calificaciones mayores o iguales a 6
F para las demás calificaciones.
Ejercitación (cont.)
4) Dados el valor anterior y el actual del medidor de la luz, escribir un
programa que determine a cuanto asciende la factura de la luz. El importe
es la suma de $12 de cuota fija más una cuota variable que depende del
consumo y se calcula por tramos:
• Los primeros 100 Kw se cobran a $0.06 el Kw.
• Los 150 Kw siguientes se cobran a $0.04 el Kw.
• El excedente de 250 Kw se cobra a $0.02 el Kw.
Funciones any y all
La función any(x) devuelve 1 si cualquiera de los elementos
de x es diferente de cero, de lo contrario devuelve 0.
La función all(x) devuelve 1 solamente si todos los elementos
de x son diferentes de cero.
Estas funciones se usan en cláusulas if.
Por ejemplo:
if all(A < 5)
...
end
Más funciones
Para argumentos matriciales, any y all trabajan por columnas
para devolver un vector fila con el resultado para cada columna.
Aplicando la función dos veces, any(any(A)), siempre reduce la
matriz a una condición escalar.
Las funciones relacionales y lógicas en MATLAB son:
any
condiciones lógicas
all
condiciones lógicas
find
halla índices de arreglos de valores lógicos
exist
verifica si existen variables
isinf
detecta infinitos
finite verifica para los valores finitos
Funciones de Funciones
•
fzero(‘nombre_funcion’,x0): Calcula el cero de una función
más próximo al valor de la variable x0
•
fminsearch(‘funcion’,x0): calcula el mínimo relativo de una
función más próximo a x0
•
fminbnd(‘funcion‘,a,b): calcula un mínimo de la función en el
intervalo [a,b]
•
Ejemplo de fzero en main_pintarseno
Estructuras de Repetición
• Controlan un conjunto de instrucciones que
deben repetirse cierto número de veces, mientras
se cumple una condición que debe ser claramente
especificada.
• La condición podrá ser verdadera o falsa, y se
comprobará en cada paso o iteración del bucle o
ciclo.
Partes de un ciclo
• Decisión: donde se evalúa la condición y, en
caso de ser cierta, se ejecuta el cuerpo del bucle.
• Cuerpo del bucle: son las instrucciones que se
ejecutarán repetidamente, un número
determinado de veces, siempre que la decisión
sea verdadera.
• Salida del bucle: es la condición que indica
cuando terminan las iteraciones.
Gráficamente
Ciclo for
• Se sabe cuántas veces se realizará el bucle, o sea, cuantas
veces se ejecutará el conjunto de instrucciones dentro del
ciclo.
• La cantidad de veces está determinada en la sección de
decisión del ciclo.
Ciclo for
SINTAXIS
for variable=incio:paso:final
declaración 1;
...
declaración n;
end
for variable=inicio:final
declaración 1;
...
declaración n;
end
Ciclo for (cont.)
for k=n1:incre:n2
end
for k=vector_columna
end
Ejemplo: main_bucles
Ejemplos básicos
for i=1:10
disp(„El valor de i es „)
disp(i)
end
for i=1:2:10
disp(‘El valor de i es ‘)
disp(i)
end
x=10:-1:1;
for i=x
disp(‘El valor de i es ‘)
disp(i)
end
%con una matriz:
matriz = [ 1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3
4];
for x = matriz
n = x(1)*x(2)*x(3)*x(4);
disp(n)
end
Otro ejemplo
for i = 1:n, x(i) = 0, end
asigna 0 a los primeros n elementos de x. Si n es menor de
1, el ciclo sigue siendo válido pero MATLAB no ejecuta la
instrucción intermedia.
Si x no esta definido, ó si tiene menos de n elementos,
entonces un espacio adicional es localizado
automáticamente a x cada vez que sea necesario.
Ejercicio 1: cuadrados
• Escribir una función que dado un natural n
devuelva los primeros n cuadrados.
Ejercicio 2: Fibonaccifor
• Programar una función que dado un entero n
calcule los n primeros valores de la serie de
Fibonacci y los grafique.
• Fibonacci(0) = 1
• Fibonacci(1) = 1
• Fibonacci(n+2) = Fibonacci(n+1) + Fibonacci(n)
Ejercicios!
• Escribir un programa que calcule las N primeras fracciones del
tipo 1/i para i = 1; 2; ….;N, tras pedir N al usuario
• Ingresar un vector de orden n y calcular su norma euclídea. La
norma euclídea de un vector x = (x1; x2; ….xn) viene dada por
la fórmula sqrt((x1)2 + (x2)2 + …. + (xn)2)
• Generar un vector de n elementos con números aleatorios
entre 0 y 1. Pedir al usuario dos números reales entre 0 y 1 LS
y LI, que representan los límites superior e inferior de un
intervalo, respectivamente. Recorrer el vector e indicar cuales
elementos se encuentran dentro de los límites dados.
• Dado un vector, hacer un programa que genere el vector
inverso. Dado x=[1 2 3] generar y=[3 2 1]
• Dada una cadena, generar la inversa. Resolverlo:
▫ Con disp. (lo muestra en vertical)
▫ Inicializando y= y´ concatenando cada elemento del vector
en cada iteración del ciclo
Ciclo while
• NO se sabe cuántas veces se realizará el bucle, o sea,
cuantas veces se ejecutará el conjunto de instrucciones
dentro del ciclo.
• La cantidad de veces NO está determinada en la sección
de decisión del ciclo. En esta sección se determina la
condición, que deberá ser verdadera, para que el ciclo siga
funcionando.
Ciclo while
SINTAXIS
while expresion
proposición 1;
...
proposición 2;
end
Ejemplos
e=1.0;
while (1.0+e)>1.0001
e=e/2.0;
end
it=1; t=0; wo=2.0*pi*60.0;
while it<=npts, ut=sin(wo*t);t=t+dt;end
Ciclo while
• Las sentencias se siguen ejecutando mientras haya
elementos distintos de cero en condición, es decir,
mientras haya algún o algunos elementos true. El bucle
se termina cuando todos los elementos de condición son
false (es decir, cero).
Más ejemplos:
a=3;
while a < 5
disp (Valor de a: ')
disp (a)
a = a + 1;
end
%desplegar el volumen de una
%esfera con radios de 1, 2, 3, 4 y
5
r = 0;
while r<5
r = r+1;
vol = (4/3)*pi*r^3;
disp([r, vol])
end;
clear;
r=0
while r<10
r = input('Teclee el radio (o -1 para
terminar): ');
if r< 0, break, end
vol = (4/3)*pi*r*3;
fprintf('volumen = %7.3f\n', vol)
end
Ejercicio: Fibonacci (cont.)
• Ahora programar la función que dado un entero
n calcule todos los valores de la serie de
Fibonacci menores a n.
• En que cambia respecto de la habíamos
programado antes?
Ejercicios!
• El juego de adivinar un número termina cuando el usuario adivina el número
secreto elegido por la computadora. Se pide entonces que la computadora
elija un número secreto entre 1 y 100, y luego le pregunte al usuario un
número hasta que ambos números sean iguales.
• Se pide escribir una versión mejorada del ejercicio anterior, en la que la
computadora ayuda al usuario avisando en cada paso si el número secreto es
mayor o menor al número ingresado por el usuario.
• El método de Newton-Raphson permite aproximar una raíz de una función f
derivable dado un punto inicial x ingresado por el usuario. En cada paso se
recalcula el valor de x por medio de la asignación x = x – (f(x) / f’(x)).
Escribir un programa que le pida al usuario el punto x inicial y que calcule
una raíz de la función f(x) = x2-2 realizando 5 iteraciones del método de
Newton-Raphson. ¿Qué puede decir sobre la calidad de la aproximación?
¿Qué sucede si se aumenta el numero de iteraciones?
Ejercicios en clase
•
Criba de Erastótenes:
Algoritmo que permite hallar todos los números primos menores que un número natural dado N. Se forma
una tabla con todos los números naturales comprendidos entre 2 y N y se van tachando los números que no
son primos de la siguiente manera: cuando se encuentra un número entero que no ha sido tachado, ese
número es declarado primo, y se procede a tachar todos sus múltiplos. El proceso termina cuando el
cuadrado del mayor número confirmado como primo es mayor que N.
•
Conjetura de Collatz
Conocida también como conjetura 3n+1. Sea la siguiente operación, aplicable a cualquier número entero
positivo:
▫
▫
Si el número es par, se divide entre 2.
Si el número es impar, se multiplica por 3 y se suma 1.
La conjetura dice que siempre alcanzaremos el 1. Ejemplos:
n = 6, uno llega a la siguiente sucesión: 6, 3, 10, 5, 16, 8, 4, 2, 1.
n = 11, la sucesión tarda un poco más en alcanzar el 1: 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
Un cálculo más práctico ilustrando el ciclo while es en el cómputo del
exponencial de una matriz, llamado expm(A) en MATLAB. Una posible
definición de la función exponencial es mediante la serie:
expm(A) = I + A + A^2/2! + A^3/3! + ...
La idea es sumar todos los términos necesarios hasta producir un
resultado que, en la precisión finita la de computadora, no cambie aunque
más términos sean añadidos. Para esto procedemos de la forma siguiente:
E = zeros(size(A));
F = eye(size(A));
k = 1;
while norm(E+F-E, 1) > 0
E = E + F;
F = A*F/k
k = k+1;
end
Aquí A es la matriz dada, E representa la suma parcial de la serie, F es un
término individual en la serie, y k es el índice de este término.
Manejo de archivos en Matlab
•
Ficheros de programa: Se construyen mediante una secuencia
de comandos. El fichero principal se llamará main_nombre.m
•
Ficheros de función: para crear funciones propias. Son llamados
por los ficheros de programa.
▫ La primera línea es ejecutable y empieza por la palabra function
de la forma:
function arg_salida=funcion_nombre(arg_entrada,
parametros)
▫ El fichero se debe guardar como funcion_nombre.m
•
Comandos de entrada y salida:
•
Ejemplo: main_pintarseno.m
 input: permite introducir datos: ae=input(„Teclee
valor de a‟);
 disp: muestra un texto por pantalla: disp(„El algoritmo
no ha convergido‟)
Manejo de archivos en Matlab
•
Ficheros de programa: Se construyen mediante una secuencia
de comandos. El fichero principal se llamará main_nombre.m
•
Ficheros de función: para crear funciones propias. Son llamados
por los ficheros de programa.
▫ La primera línea es ejecutable y empieza por la palabra function
de la forma:
function arg_salida=funcion_nombre(arg_entrada,
parametros)
▫ El fichero se debe guardar como funcion_nombre.m
Comandos de entrada y salida:
•
•
 input: permite introducir datos: ae=input(„Teclee
valor de a‟);
 disp: muestra un texto por pantalla: disp(„El algoritmo
no ha convergido‟)
Ejemplo: main_pintarseno.m. Usar el Debugger para meterse en
la función
ARCHIVOS DE E/S
DECLARACIÓN fopen
id = fopen(`nombre.dat', `permiso')
donde permiso puede ser:
`r'
`r+
`w'
`w+'
`a'
`a+'
Abre archivo para lectura
Abre archivo para lectura y escritura
Borra el contenido del archivo existente o crea un nuevo archivo y lo
abre para escritura
Idem que `w' únicamente que el archivo se abre para lectura y escritura
Crea y abre un nuevo archivo o abre un archivo
Idem que `a' únicamente que el archivo es abierto para lectura y escritura
Ejemplo
fid = fopen(`archivo.dat','r')
fid = -1, error
0, lectura/escritura normal
[fid, mensaje = fopen(`archivo.dat','r')
DECLARACIÓN fclose
status = fclose(fid)
DECLARACIÓN fread
Lee un archivo abierto con una precisión
indicada
o
fread(fid,registros,'precision')
status = fclose (`all') – cierra
todos los archivos abiertos
registros
DECLARACIÓN fprintf
`char' o `uchar'
`short' o `long'
`float' o `double'
Salida con formato
Ejemplos:
fprintf(fid,'titulo\n');
fprintf(fid,'%f %12.7f\n', y);
Formato
%s - cadena decimal
%d - número decimal
%f - punto flotante
% g - formato g
Ejemplo:
A = fread(fid,10,'float')
DECLARACIÓN fwrite
fwrite(fid,A,'short')
Debugger de una función
Set/Clear breakingpoint: Coloca o borra un punto de ruptura
en la línea en que está colocado el cursor
Clear all breakingpoints:: Borra todos los puntos de ruptura
Step: Avanza un paso en el programa
Step in: Avanza un paso en el programa y si en ese paso se
llama a una función, entra en dicha función
Step out: Avanza un paso en el programa y si en ese paso se
llama a una función, entra en dicha función
Continue: Continua ejecutando hasta el siguiente punto de
ruptura
Quit debugging: Termina la ejecución del debugger
GRÁFICAS EN DOS DIMENSIONES
FUNCIONES ELEMENTALES PARA GRÁFICAR
plot
crea una gráfica de vectores ó columnas de matrices.
loglog crea una gráfica utilizando una escala logarítmica para ambos ejes.
semilogx crea una gráfica utilizando una escala logarítmica para el eje-x y
una escala lineal para el eje-y.
semilogy crea una gráfica utilizando una escala logarítmica para el eje-y y
una escala lineal para el eje-x.
Puedes añadir títulos, encabezamientos de ejes, líneas entre cortadas y texto a
tus gráficas utilizando:
tittle
xlabel
ylabel
text
gtext
grid
añade título a la gráfica
añade encabezamiento al eje-x
añade encabezamiento al eje-y
añade una cadena de texto en una localización específica
añade texto a la gráfica utilizando el ratón
crea líneas entrecortadas
Descargar