Archivos

Archivos.

 

Guardar y cargar.

 

Para guardar todas las variables de ambiente en un archivo se utiliza la instrucción

 

save

 

las cuales por default se almacenan un archivo llamado matlab.mat.

 

 

Cuando se desea recuperar la información de este archivo se utiliza la instrucción

 

load

 

Se puede especificar el nombre de un archivo para almacenar los datos

 

save nombre_archivo

 

o para cargar

 

load nombre_archivo

 

Si solo se desea guardar ciertas variables se después del nombre del archivo se escribe

 

save nombre_archivo a b c

 

y al momento de cargar no será necesario especificar las variables que se guardaron.

 

Ejemplo 1.

 

En el siguiente ejemplo se almacenan un conjunto de variables en un archivo llamado salida.

 

a = [1 2 3 4]

b = [a', a'.^2]

c=2

 

save salida

 

clear

 

load salida

 

Guardar y cargar en formato ascii.

 

En algunas ocasiones resulta interesante guardar la información de nuestras variables en un formato que pueda ser visualizado por cualquier editor de texto. El formato ascii es uno de los formatos mas estándares que nos permite almacenar nuestras variables en un documento de texto.

 

Para almacenar nuestras variables como tales hacemos

 

a = [1 2 3 4]

b = [a', a'.^2]

c=2

 

save salida.txt –ascii

 

Para cargar utilizamos

 

load salida.txt

 

Cuando se trata de archivos en formato ascii al utilizar la instrucción para cargar, tendremos el problema de que MATLAB intenta poner todos los valores en una sola variable, por lo cual este formato no será útil para almacenar mas de una variable. Podremos almacenar matrices, vectores y constantes, pero nunca combinaciones de estas.

 

Ejemplo 2.

 

Hacer un programa que resuelva el siguiente circuito eléctrico utilizando análisis nodal. Suponga que los datos del circuito se encuentran almacenados en un archivo llamado circuito.txt y que el formato es:

 

%inicio   final   conductancia    fuente

0         1       2.0             1.0

1         2       3.0             0.0

2         0       1.0             0.0

2         3       2.4             2.0

3         0       1.5             0.0

1         3       0.3            -0.5

 

Para encontrar la matriz de conductancia la haremos por inspección, tal que:

 

1.- Gi,i será la suma de la conductancias conectadas al nodo i

2.- Gi,j es la conductancia entre el nodo i y el nodo j con signo menos y

3.- Ii es la suma de las corrientes que entran al nodo

 

la formulación del circuito quedará como:

 

Gv =I

 

donde

G es la matriz de conductancias nodales

v los voltajes nodales y

I las corrientes nodales.

 

La solución utilizando MATLAB queda:

 

function [V, Ie] = nodales(archivo)

datos = load (archivo);

 

n = max(max(datos(:,1)), max(datos(:,2)));

m = length(datos(:,1));

 

fprintf('El numero de nodos es     = %d\n', n);

fprintf('El numero de elementos es = %d\n', m);

 

G = zeros(n,n);

I = zeros(n,1);

 

for k=1:m

   ini = datos(k,1);

   fin = datos(k,2);

   if ((ini ~= 0) & (fin ~= 0))

      G(ini, fin) = -datos(k,3);

      G(fin, ini) = -datos(k,3);

   end;

    

   if (ini ~= 0)

      I(datos(k,1)) = I(datos(k,1)) + datos(k,4);

      G(ini, ini) = G(ini, ini) + datos(k,3);

   end;

   if (fin ~= 0)

      I(fin) = I(datos(k,2)) + datos(k,4);

      G(fin, fin) = G(fin, fin) + datos(k,3);

   end;

end

 

fprintf('La matriz de conductancias es        \n'); G

fprintf('El vector de fuentes de corriente es \n'); I

 

fprintf('Los voltajes nodales son \n'); v = G\I

 

for k=1:m

   ini = datos(k,1);

   fin = datos(k,2);

  

   if(ini == 0)

      vini = 0;

   else

      vini = v(ini);

   end;

  

   if(fin == 0)

      vfin = 0;

   else

      vfin = v(fin);

   end;

  

   V(k) = vini - vfin;

   Ie(k) = V(k)*datos(k,3);

end

 

Regresar.