Programacion Avanzada Matlab
Programacion Avanzada Matlab
con
MATLAB
Julio Bodega
Contenidos
4. Ficheros *.m
• Sentencia if
• Sentencia switch
• Bucle for
• Bucle while
• Sentencia break
Mientras que la gran mayoría de los lenguajes de programación utilizan las llaves, {...}, para
indicar donde comienza y acaba el bucle, en MATLAB se utiliza la sentencia end para este
propósito.
• Sentencia if 1. Sentencias condicionales y bucles
If condición
bloque de sentencias
end
En la sintaxis anterior hay que darse cuenta de end cierra el bloque de sentencias que se
desea que ejecute MATLAB con la condición indicada, por ello es conveniente situar end justo
en línea con la sentencia if.
If condición 1
Opción por defecto para
bloque 1
cuando no se cumplan las elseif condicion 2
condiciones 1, 2 y 3 bloque 2
elseif condición 3
bloque 3
puede ser omitida else
bloque 4
end
• Sentencia if 1. Sentencias condicionales y bucles
R= R=
1 0
La resolución del ejemplo anterior no es la más idónea, sencillamente se ha optado por esa
solución para dar una primera visión de la sentencia if.
• Sentencia switch 1. Sentencias condicionales y bucles
switch switch_expresión
case case_expresión 1,
bloque 1
case case_expresión 2,
bloque 2
….
otherwise %opción por defecto
bloque n
end
R= R= R=
0 1 1000
• Bucle for 1. Sentencias condicionales y bucles
for i=1:step:n
bloque de sentencias
end
La variable i representa desde que valor parte el inicio del bucle; step es el paso con el que se
incrementa o decrementa la variable i; y n es el valor final que alcanza la variable i, llegados a
ese valor, el bucle finaliza.
Los bucles for pueden anidarse al igual que en otros lenguajes de programación, así podría
escribirse:
for i=1:step:n
sentencias
for j=1:step:m
sentencias
end
end
>> j=0;
>> for i=1:50
if rem(i,2)==0
j=j+1;
V(j)=i;
end
end
>> V
V=
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
42 44 46 48 50
En el ejemplo anterior se ha introducido una sentencia condicional if dentro del bucle for.
• Bucle for 1. Sentencias condicionales y bucles
Ejemplo: Mediante un bucle for anidado crear una matriz de 5x5 cuyos elementos sean los 25
primeros números enteros.
A=
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
• Bucle while 1. Sentencias condicionales y bucles
El bucle while permite repetir un conjunto de sentencias o comandos de MATLAB siempre que
se cumpla una determinada condición. Es similar al bucle utilizado en lenguaje C, su sintaxis
es la siguiente:
while condición
bloque de sentencias
end
En la expresion anterior, la condición puede ser una expresión escalar, vectorial o matricial. El
bucle se repetirá hasta que la condición entregue un 0 lógico (false).
P=
3628800
• Sentencias break y try … catch … end 1. Sentencias condicionales y bucles
Del mismo modo que en lenguaje C, la sentencia break obliga a finalizar la ejecución del
bucle más interno de los que comprenden a dicha sentencia. Su sintaxis es muy sencila:
break
La sentencia try … catch … end permite gestionar errores que se produzcan en tiempo de
ejecución de un programa. Su sintaxis es la siguiente:
try
bloque de sentencias 1
catch
bloque de sentencias 2
end
Por otro lado, MATLAB dispone de una función llamada lasterr que devuelve una cadena de
caracteres con el mensaje de error que se ha producido.
2. Lectura y escritura interactiva de variables
• Función input
• Función disp
• Función input 2. Lectura y escritura interactiva de variables
La función input se utiliza para imprimir un mensaje en la línea de comandos (>>) de MATLAB
y recuperar como valor de retorno un valor numérico o el resultado de una expresión tecleada
por el usurario. Su sintaxis es la siguiente:
>> n=input(‘frase');
Al igual que en programación con lenguaje C, al ejecutar input el programa queda en espera
hasta introducir un valor.
Anticipándonos a lo que se verá más tarde, input también puede utilizarse en variables de
cadena de caracteres de la siguiente forma:
ans =
9
• Función disp 2. Lectura y escritura interactiva de variables
La función disp se utiliza para imprimir en pantalla textos o valores sin tener que imprimir el
nombre de las variables que los contienen. Su sintaxis, dependiendo de lo que se desee
imprimir será:
cuando es un texto, y:
>> disp('FELICIDADES')
FELICIDADES
>> A=[1 3 5];
>> disp(A)
1 3 5
NUESTRO PRIMER PROGRAMA
• Cadenas de caracteres
• Hipermatrices
• Estructuras
Del mismo modo que el lenguaje C, MATLAB trabaja con cadenas de caracteres.
Los caracteres de una cadena se almacenan en un vector en el que cada elemento está
asociado a un carácter.
Una matriz de caracteres es una matriz cuyos elementos son caracteres, o cuyas filas son
cadenas de caracteres. Todas las filas han de tener el mismo número de elementos por lo que,
si fuese necesario, habría que rellenar alguna fila con espacios en blanco.
MATLAB proporciona un gran número de funciones para trabajar con caracteres. Estas
funciones se encuentran en el subdirectorio: \toolbox\matlab\strfunc dentro de matlab.
c=
bienvenido al MATLAB
>> double(c)
ans =
ans =
?Cd
• Cadenas de caracteres 3. Otro tipo de datos
• Crear una matriz de caracteres completando con espacios en blanco las cadenas más cortas:
>> cad1='hola';
>> cad2='¿qué tal estás?';
>> char(cad1, cad2)
ans =
hola
¿qué tal estás?
Si la línea char(cad1, cad2) se asocia a una matriz B, el elemento B(2, 4) sería: é.
ans =
11
elimina los últimos espacios
>> length(d) blancos de la cadena
ans =
8
• Cadenas de caracteres 3. Otro tipo de datos
d= d=
1 0
1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1
• Cadenas de caracteres 3. Otro tipo de datos
ans =
0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0
Ejemplo: elaborar un pequeño programa que cuente el número de espacios en blanco de una
frase cualquiera.
ans =
2
• Cadenas de caracteres 3. Otro tipo de datos
ans = ans =
0 1
ans = ans =
0 1
• Cadenas de caracteres 3. Otro tipo de datos
ans = ans =
1 0
n primeros caracteres a
comparar
>> cad2='Pedro';
>> cad3='PeDRo';
>> cad2==cad3
las dos cadenas a comparar han
de tener el mismo número de
ans = caracteres
1 1 0 0 1
• Cadenas de caracteres 3. Otro tipo de datos
• Separar palabras de una cadena de caracteres (cad), devolviendo la primera palabra (p) y el
resto de la cadena (r):
>> cad='ahora salgo del trabajo';
>> [p, r]=strtok(cad)
p=
Ahora
r=
2367
53 54 57 58
• Cadenas de caracteres 3. Otro tipo de datos
• Convertir un número real x en una cadena de caracteres con un número dado de decimales n:
ans =
>> ans+300
>> s='234.5';
>> x=str2double(s);
>> x+0.5
ans =
¡¡ FUNCIÓN MUY IMPORTANTE !!
235
• Hipermatrices 3. Otro tipo de datos
• Las funciones que operan con hipermatrices son análogas a las funciones que se han visto en
la introducción a MATLAB, si bien, existen algunas diferencias. Pongamos un ejemplo:
>> MM(:,:,1)=[1 2 3; 4 5 6] % generamos una hipermatriz a partir de una matriz de 2x3
MM =
primera matriz
1 2 3
4 5 6
MM(:,:,1) =
1 2 3
Muestra el primer elemento
4 5 6 del array de matrices (2x3)
MM(:,:,2) =
Muestra el segundo elemento
9 0 1
del array de matrices (2x3)
2 5 7
• Hipermatrices 3. Otro tipo de datos
• Algunas funciones de MATLAB para generar matrices admiten más de dos índices y es por ello,
por lo que se pueden utilizar para generar hipermatrices:
rand()
randn()
zeros()
ones()
Ejemplo: generar una hipermatriz (2, 4, 2) a partir de elementos aleatorios (distr. continua).
CC(:,:,1) =
CC(:,:,2) =
C= C= C(:,:,1) =
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
1 1 1 1
1 1 1 1
C(:,:,2) =
1 1 1 1
1 1 1 1
concatena matrices en
fila
concatena matrices en
columna genera una
hipermatriz
• Hipermatrices 3. Otro tipo de datos
size()
ndims()
permute()
Ipermute()
squeeze()
reshape()
1. Todas las funciones MATLAB que operan sobre escalares se aplican a hipermatrices
elemento a elemento.
2. Las operaciones de MATLAB que operan sobre vectores (sum(), max(), …) se aplican
sobre matrices e hipermatrices según la primera dimensión, resultando un array de una
dimensión inferior.
3. Las funciones matriciales propias del álgebra lineal no se pueden aplicar sobre
hipermatrices. Para poderlas aplicar hay que extraer las correspondientes matrices
([Link]. con el operador (:)).
• Estructuras 3. Otro tipo de datos
• Las estructuras (struct) son agrupaciones de datos de tipo diferente bajo un mismo nombre.
Los datos se denominan miembros (members) o campos (fields). Una estructura es un nuevo
tipo de dato del que se pueden crear numerosas variables (objetos o instances). Por ejemplo, la
estructura afiliado puede contener los campos: nombre, edad, nº afilición, etc.
>> [Link]='Julian‘;
>> [Link]=28;
>> afiliado
afiliado =
nombre: 'Julian'
edad: 28
afiliado =
nombre: 'Pedro'
edad: 56
• Estructuras 3. Otro tipo de datos
En el ejemplo anterior, los nombres de los campos se pasan a la función struct por medio de
apóstrofos (´) seguidos del valor que se les quiere dar. El valor también puede ser la cadena
vacía (‘’) o la matriz vacía ([]).
• Con MATLAB pueden crearse vectores, matrices e hipermatrices de estructuras. Por ejemplo,
para crear un vector de estructuras de 5 elementos:
Con la sentencia anterior se crea una estructura de nombre afiliado con campos nombre y edad
que va a tener cinco elementos y el último con valores Juan y 45 (los demás son la cadena vacía
y la matriz vacía).
• Para introducir valores en los campos de la estructura se pueden utilizar los bucles for y while,
variando el valor de los campos mediante el subíndice i:
• Con MATLAB se puede añadir nuevos campos a la estructura de forma muy sencilla. Por
ejemplo para añadir el campo profesion a la estructura afiliado:
Ejemplo: elaborar un programa en un fichero script *.m denominado club, que permita introducir
valores a los campos de una estructura de cinco elementos llamada socio con campos nombre
y cuota.
Primero creamos el script file denominado club.m e introducimos las sentencias que se indican a
continuación:
• Estructuras 3. Otro tipo de datos
Después invocamos al fichero club desde la línea de comandos y se introducen los nombres y
la cuota de los socios en el orden que se indica:
>> club
nombre: julio
cuota: 78
nombre: pedro
cuota: 23
nombre: andres
cuota: 67
nombre: juan
cuota: 90
nombre: guillermo
cuota: 100
Para comprobar que los nombres se han introducido correctamente puede comprobarse el
contenido de cada uno de los elementos de la estructura, p. ej., los datos del socio 2:
>> socio(2)
ans =
nombre: 'pedro'
cuota: 23
• Vectores o matrices de celdas 3. Otro tipo de datos
• Los vectores (matrices o hipermatrices) de celdas son vectores cuyos elementos son variables
cualquiera. En los arrays ordinarios los elementos son números o caracteres, sin embargo, en los
vectores del celdas el primer elemento puede ser un número, el segundo una matriz, el siguiente
una cadena de caracteres, etc.
• Los vectores de celdas se crean utilizando llaves a la hora de introducir el valor de sus
elementos:
vv =
[1x3 double]
cadena de caracteres
>> vv(2)={'¿qué tal todo?'} como segundo elemento
vv =
>> vv(3)={rand(2,2)}
matriz como tercer
elemento
vv =
Ahora, tomando el ejemplo anterior, ya pueden visualizarse todos los elementos del vector de
celdas:
>> celldisp(vv)
vv{1} =
1 2 3
vv{2} =
vv{3} =
0.8147 0.1270
0.9058 0.9134
>> vv{3}
ans =
0.8147 0.1270
0.9058 0.9134
• Vectores o matrices de celdas 3. Otro tipo de datos
Una serie de funciones muy utilizadas en los trabajos con cell arrays son:
>> st=cell2struct(vv,{'vector','cadena','matriz'},2)
>> vb=struct2cell(st)'
st =
vb =
vector: [1 2 3]
cadena: '¿qué tal todo?'
[1x3 double] '¿qué tal todo?' [2x2 double]
matriz: [2x2 double]
• Subfunciones
• Funciones privadas
• Funciones *.p
• Variables persistentes
• Variables globales
• Ficheros de comandos (scripts) 4. Ficheros *.m
• Los ficheros m (extensión *.m) son unos ficheros de texto sin formato (ficheros ASCII) que
representan el centro de la programación en MATLAB.
• Desde una línea de un script file se pueden ejecutar otros script files diferentes, e incluso el
mismo fichero de forma recursiva.
• En los ficheros de comandos conviene poner puntos y coma (;) al final de cada sentencia con el
fin de evitar excesivas salidas en pantalla del programa.
• Ficheros de comandos (scripts) 4. Ficheros *.m
• La sentencia echo permite que se impriman los comandos de un script file según se va
ejecutando el fichero. Esta sentencia ofrece distintas posibilidades:
• Las funciones (function files) permiten definir funciones exactamente iguales a las utilizadas en
las distintas aplicaciones de MATLAB.
• Los ficheros de función en su primera línea han de obedecer a una sintaxis muy concreta:
name es el nombre de la función; entre corchetes van los valores de retorno (separados por
comas (,) siempre que haya más de uno); entre paréntesis va la lista de argumentos,
también separados por comas (,) siempre que haya más de uno. Al igual que en Lenguaje C,
en MATLAB pueden crearse funciones sin argumentos (datos) ni valores de retorno
(resultados). Si no hay valores de retorno se omitirán los corchetes ([]) y el signo igual (=); si
sólo hay un valor de retorno no hace falta poner corchetes. Por otro lado, si no hay
argumentos tampoco es necesario poner paréntesis.
• Una diferencia muy importante con el lenguaje C es que MATLAB no modifica el valor de los
argumentos que recibe.
• Las variables definidas dentro de una función son variables locales en el sentido de que son
inaccesibles desde otras partes del programa y tampoco interfieren con variables del mismo
nombre del programa o utilizadas en otras funciones.
• Para que una función tenga acceso a una variable que no le haya sido pasada como
argumento, habría que declarar dicha variable como variable global. Como convenio este tipo
de variables se designan mediante nombres largos y letras mayúsculas.
• Los argumentos que recibe una función en MATLAB no se copian a variables locales si no son
modificados por dicha función (en términos de lenguaje C se diría que se pasan por referencia
-el programa gana en eficiencia-); sin embargo, si la función modifica los argumentos, antes se
sacan copias de los argumentos a variables locales y después se modifican las copias (en
términos de lenguaje C se diría que los argumentos se pasan por valor).
• Dentro de una función, los valores de retorno han de ser calculados en algún momento (aquí no
existe la sentencia return de C). De todos modos, no es necesario calcular todos los valores de
retorno declarados en la función sino aquellos que se necesiten en la cuando se solicitó la
llamada. En cualquier función existen dos funciones llamadas nargin y nargout que representan,
respectivamente, el número de argumentos y valores de retorno con los que la función ha sido
llamada.
• MATLAB dispone de una nueva forma capaz de pasar a una función un conjunto variable
argumentos. La variable utilizada con este fin se llama vargarin, que es un vector de celdas que
contiene tantos elementos como sean necesarios con el fin de poder recoger en dichos
elementos todos los argumentos que se hayan pasado en la llamada. No es necesario que
vargarin sea el único argumento en la función, sin embargo, sí debe ser el último, ya que recoge
todos los argumentos a partir de una determinada posición. Es conveniente recordar que a los
elementos de un cell array se accede mediante llaves ({}) y no mediante paréntesis (()).
• Del mismo modo que para el caso de los argumentos, MATLAB dispone de otra forma para que
en una función exista un número indeterminado de valores de retorno. La variable en este caso
es varagout, que también es un cell array que agrupa los últimos valores de retorno de la
función. En una función puede haber más valores de retorno que varagout pero éste debe ser el
último. El cell array varagout se debe crear dentro de la función y hay que dar valor a sus
elementos antes de salir de la función. Es conveniente recordar que las variables nargin y
nargout indican el número de argumentos y de valores de retorno con el que ha sido llamada la
función.
• Ayuda (help) para las funciones de usuario 4. Ficheros *.m
• Del mismo modo que las funciones de MATLAB, las funciones de usuario tienen su propio help
(las primeras líneas de comandos en las funciones en MATLAB tienen una importancia capital ya
que permiten construir un help sobre esa función) lo que se consigue de la siguiente forma:
• MATLAB permite a los usuarios crear una ayuda general para todas las funciones ubicadas en
un determinado directorio. Para ello hay que crear en ese directorio un fichero denominado
contents.m. Un fichero típico correspondiente al directorio \toolbox\local de MATLAB es:
>> help local
General preferences and configuration information.
Preference commands.
cedit - Set command line editor keys.
Configuration information.
hostid - MATLAB server host identification number.
license - Return license number or perform licensing task.
version - MATLAB version number.
Utilities.
userpath - User environment path.
Si ahora se pasan a la función los argumentos 30 y 15, el resultado con MATLAB sería:
ans =
45
1. Se crea un function file llamado funcion.m (función principal) con dos parámetros a y b en el
que se han definido dos subfunciones: funcion1 y funcion2.
2. Se pasan desde la función principal los argumentos a y b a los parámetros p y q de la
subfunción funcion1.
3. Desde la subfunción funcíon1 se pasan los argumentos p y q a los parámetros l y m
mediante la llamada a una nueva subfunción funcion2.
4. En la subfunción funcion2 se realiza la suma de los parámetros l y m.
5. El valor de la suma pasa a la variable z, que, a su vez, pasa a la x y finalmente a la y. Este
valor es entregado en pantalla mediante la variable ans.
• Funciones privadas 4. Ficheros *.m
• Se denominan funciones privadas (private) a aquellas que no pueden ser llamadas desde otra
función, aunque éstas se encuentren en el path o en el directorio actual.
• Únicamente ciertas funciones están autorizadas para poder utilizar las funciones privadas.
• Las funciones privadas se definen en subdirectorios denominados private y sólo pueden ser
llamadas desde por funciones definidas en el directorio padre del subdirectorio private.
• Para buscar la ayuda de una función privada sólo hay que escribir:
• Las funciones *.p son funciones *.m pero previamente compiladas con la función pcode.
• La gran ventaja de las funciones *.p frente a las funciones *.m es que trabajan a mayor
velocidad que las *.m. Además, las funciones *.p ocultan el código de los ficheros ASCII
correspondiente a las funciones *.m de MATLAB.
• Por defecto, el resultado del comando pcode func.m es el fichero func.p en el directorio actual
(el fichero func.m puede estar en cualquier directorio del search path). El comando
pcode –inplace func.m crea el fichero func.p en el mismo directorio que se encuentra func.m.
• Variables persistentes 4. Ficheros *.m
• Las variables persistentes (persistent) son variables locales a una determinada función
(pertenecen al espacio de trabajo de la función y sólo son visibles en ese espacio) las cuales
conservan su valor entre distintas llamadas a la función.
• Las variables locales se de tipo persistent se crean y se destruyejn cada vez que se ejecuta la
función, y han de estar definidas en ficheros de tipo de función (function filies) y n o en ficheros
de comandos (script files). Para distinguirlas de otros tipos de variables es habitual utilizar letras
mayúsculas precedidas por el vocablo persistent separando el nombre de las variables mediante
espacios en blanco:
• Para evitar que se modifique un fichero *.m hay que utilizar el comando mlock file.m. El
comando munlock file.m desbloquea el fichero, mientras la función mislocked permite saber si
el fichero está bloqueado o no.
• Variables globales 4. Ficheros *.m
• Las variables globales son aquellas que, además de en el espacio de trabajo, son visibles
para todas las funciones en las que sean requeridas. Estas variables se declaran mediante la
expresión global (precede al nombre de las variables), con letras mayúsculas y el nombre
separado mediante espacios en blanco. Por ejemplo:
• Hasta ahora se han visto dos sentencias de MATLAB que permiten la introducción y
visualización de datos. Las sentencias son input y disp.
• Existen numerosas formas de pasar datos a MATLAB desde otras aplicaciones, como, por
ejemplo, puede ser EXCEL. Analicemos algunas de ellas:
>> A=[ ]
>> A=[1 2
3 4
5 6
7 8
]
A=
1 2
3 4
5 6
7 8
• Los datos son editables ahora mediante el cambio de los valores de los elementos de la matriz:
>> A(1,2)=90
A=
1 90
3 4
5 6
7 8
• Importar datos de otras aplicaciones 5. Entrada y salida de datos
Está claro que cuando creamos el fichero *.m podemos editar los datos a
nuestro antojo.
• Importar datos de otras aplicaciones 5. Entrada y salida de datos
3. Creando un flat file.- Este tipo de ficheros están formados por datos
introducidos en filas de longitud constante (delimitadas con intro) y separados
por espacios en blanco. Los ficheros han de tener extensión *.txt ([Link].:
[Link]).
Ahora sólo hay que introducir el comando: >> B=load(‘[Link]’) para que los
datos pasen a la matriz B.
• Importar datos de otras aplicaciones 5. Entrada y salida de datos
• Al igual que en el caso de importación de datos, con MATLAB se pueden exportar datos a
otras aplicaciones informáticas como son EXCEL o WORD.
Ejemplo:
Crea el fichero y lo
abre para grabación
Cierra la grabación de
sesión de trabajo
Vuelve a abri la
grabación de sesión
de trabajo
Deja cerrada la
grabación
• Exportar datos a otras aplicaciones 5. Entrada y salida de datos
Como se puede
observar no se ha
grabado la introducción
y visualización de la
variable B
• Exportar datos a otras aplicaciones 5. Entrada y salida de datos
• También se puede guardar una sesión de trabajo con MATLAB en WORD mediante el
comando save y la opción –ascii. Tomando para ejemplo el fichero vectorD:
• Siempre que se utilice el comando save –ascii hay que tener en cuenta que sólo se
guardarán los valores de las variables en código ASCII pero no su nombre. Cuando
estos valores se quieran recuperar en MATLAB se introducirán en una sola matriz:
E=
1 2 3 4 5 6
6. Lectura y escritura de ficheros
• Las funciones fopen y fclose se utilizan para abrir y cerrar ficheros, respectivamente.
donde:
r lectura
w escritura reemplazando
a escritura añadiendo
r+ lectura y escritura
• Funciones fopen y fclose 6. Lectura y escritura de ficheros
• Cuando por alguna razón el fichero no puede ser abierto, al introducir la línea de
comando anterior MATLAB devuelve un -1. El valor de retorno texto dará información
sobre el tipo de error producido.
• Una vez llevadas a cabo las operaciones de lectura y/o escritura realizadas, hay que
proceder a cerrar el fichero mediante la función fclose:
donde:
• Si se desean cerrar todos los ficheros abiertos durante la sesión de trabajo hay que
utilizar:
Ejemplo:
Introduce el vector de cuatro elementos
>> u=[1 3 5 7]; crea y abre un fichero de lectura-escritura
>> iden=fopen('[Link]','a+');
>> k=length(u); asigna una variable la longitud del vector
>> for i=1:k
fprintf(iden,'%.2f',u(i)); Imprime los elementos del vector como
fprintf(id1,'\n'); números reales de dos decimales
end salta línea
>> fclose(iden);
cierra el fichero
donde:
%s cadenas de caracteres
%d enteras
%f coma flotante
%lf doble precisión
Ejemplos.- Cargar los datos que existen en los fichero [Link] y vectorD en la variable
P (estos ficheros se utilizaron anteriormente en otros ejemplos).
f2 = f2 =
3 3
P= P=
12.8000 1
-2.4000 2
6.0000 3
21.4000 4
-0.2300 5
3.1000 6
2.2000
-45.7000 >> fclose(f2)
9.2400
>> fclose(f2)
• Funciones fscanf, sscanf, fprintf, sprintf 6. Lectura y escritura de ficheros
donde:
Introducimos en MATLAB:
>> f3=fopen('[Link]','r+');
>> edad=23;
>> peso=58;
>> fprintf(f3, 'la edad de Pedro es: %d y su peso %d Kg', edad, peso);
>> fclose(f3);
>> resultado = sprintf(f3, 'la edad de Pedro es: %d y su peso %d Kg', edad, peso);
• Las funciones fread y fwrite son similares a fscanf y fprintf con la diferencia de que se
utilizan para leer y escribir en ficheros binarios y no de texto (ASCII). La ventaja de
utilizar ficheros binarios y no de texto es que los procesos de lectura y escritura se
realizan de forma mucho más rápida y que ambos procesos son a la vez más precisos
(no se pierden decimales al escribir). Todo esto es particularmente significativo en
grandes ficheros de datos. Por el contrario, los ficheros binarios no permiten editar datos.
Ejemplo: Se desea escribir los datos de una matriz dada (A) en un fichero binario llamado
[Link]. Posteriormente se desea introducir en otra matriz B los datos de la matriz
grabada en el fichero.
>> id1=fopen('[Link]', 'r');
>> B=fread(id1);
>> B