Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
1. Introduci
on a Scilab
Enero, 20 de 2012
Computaci
on en Ingeniera de Procesos
1 / 76
Contenido
1
2
Introduccion a la modelizaci
on y computaci
on
Introduccion a Scilab
2.1
2.2
2.3
2.4
2.5
3
4
Aspectos basicos
Instalaci
on de Scilab
Iniciando una sesi
on de Scilab
Scilab basico
Vectores y matrices
Scripts
Funciones
Estructuras selectivas
Estructuras repetitivas
Ruptura de ciclos y salida
Computaci
on en Ingeniera de Procesos
2 / 76
1. Introduccion a la modelizacion
y computacion
Computaci
on en Ingeniera de Procesos
3 / 76
balance de masa,
balance de energa,
balance del momento,
ecuaciones del equilibrio,
ecuaciones cineticas, ecuaciones de estado
Computaci
on en Ingeniera de Procesos
4 / 76
Software de simulaci
on:
Matlabr ,
ProSimPlusr
Scilab
AspenPlusr , Hysisr
Matematicar
Fluentr
Mapler ,
OpenFOAM
etc.
etc.
Computaci
on en Ingeniera de Procesos
5 / 76
Un sistema de recuperaci
on de acetuna del aire se muestra en la figua abajo. En una columna de absorci
on se
absorbe la acetona en agua a raz
on de Ai de aire seco de un 8% de riqueza en acetona y un flujo de entrada de
agua W . El aire se satura de agua (3%) y el agua que sale de la torre de absorci
on y que contiene la acetona se
trata en un separador flash. Del separador, la fracci
on de vapor que se lleva al condensador contiene V de acetona,
mientras que la fracci
on que no se aprovecha contiene un 3%. la composici
on de la corriente de vapor, V , y la
corriente del lquido, L, que sale del separador flash estan relacionadas por
y = 20.5 x
Aire, A0
3% Agua
Agua, W
Acetona recuperada, V
al condensador
Absorbedor
Separador Flash
x = 0.03
Residuos acuosos, L
Aire, Ai
8% de acetona
Computaci
on en Ingeniera de Procesos
6 / 76
donde
x: la facci
on masica de acetona en el flujo de vapor a la salida
y : la facci
on masica de acetona en el flujo del lquido a la salida
El balance de materia:
aire: 0.92Ai = 0.97A0
acetona: 0.08Ai = y V + 0.03L
agua: W = 0.03A0 + (1 y )V + 0.97L
Para Ai = 600lb/hr y W = 500lb/hr tendremos un sistema algebraico lineal de
tres ecuaciones y tres incognitas A0 , V y L.
Computaci
on en Ingeniera de Procesos
7 / 76
Una mezcla de hidrocarburos que contiene 25% en moles de n-butano, 45% en moles de n-pentano y 30% en moles
de hexano se separa en un proceso de vaporizaci
on flash simple, como se muestra en la Figura 2. El proceso
funciona a 270 F y 10 atm. Se trata de calcular el flujo del vapor y de los productos lquidos. Las fracciones
molares del vapor y del lquido en la corriente del producto estan relacionadas con
Ki = yi /xi
donde
xi : la facci
on molar del componente i en el lquido
yi : la facci
on molar del componente i en el vapor
V , yi
F = 100 moles/lb
zi
Vaporizador Flash
Componente
F, zi
Ki
xi
yi
n-butano
n-pentano
n-hexano
0.25
0.45
0.30
2.13
0.10
0.30
0.129
0.451
0.456
0.275
0.457
0.268
L, xi
Computaci
on en Ingeniera de Procesos
8 / 76
V
F
=
3
X
i=1
zi (Ki 1)
=0
(Ki 1)(V /F ) + 1
es una ecuaci
on no lineal de tercer grado con la incognita
Computaci
on en Ingeniera de Procesos
V
F
.
9 / 76
I : Input o entrada
O: Input o salida
m: la masa
xi : la facci
on masica del componente en el flujo
a la entrada
I , xi
O, x0
xO : la facci
on masica del componente en el flujo
a la salida
x, m
Computaci
on en Ingeniera de Procesos
10 / 76
dm
,
dt
m= constante (I = 0)
(1)
dx
= xi I x0 O = (xi x)I
dt
(2)
Es una ecuaci
on diferencial (2). Es conveniente (necesario) calcular una
soluci
on numerica de las ecuaciones si I , m, o xi varian de un modo complicado
con el tiempo.
Computaci
on en Ingeniera de Procesos
11 / 76
2. Introduccion a Scilab
Computaci
on en Ingeniera de Procesos
12 / 76
13 / 76
I
I
I
Sencillo de utilizar
Software libre: se distribuye bajo la licencia GNU, GPL
(General Public Licence)
C
odigo abierto: amplia comunidad de soporte (foros, etc.)
Tiene su propio lenguaje de pogramaci
on estructurada
Sintaxis bastante similar a Matlab
I
I
Computaci
on en Ingeniera de Procesos
14 / 76
Computaci
on en Ingeniera de Procesos
15 / 76
Computaci
on en Ingeniera de Procesos
16 / 76
Ventana de gr
aficos:
I
Se muestran graficos
Computaci
on en Ingeniera de Procesos
17 / 76
Tama~
no
2 por 3
3 por 1
2 por 1
1 por 1
1 por 1
1 por 1
home
Bytes
64
40
32
24
24
24
Computaci
on en Ingeniera de Procesos
18 / 76
19 / 76
Computaci
on en Ingeniera de Procesos
20 / 76
2.4.Scilab basico
Variables
Las compomenentes basicas del Scilab son vectores o matrices.
Todas las operaciones estan optimizadas para el uso de vectores.
Scilab siempre trabaja con:
I
I
I
n
umeros reales de doble precisi
on
n
umeros complejos
cadenas de caracteres
Computaci
on en Ingeniera de Procesos
21 / 76
variable = expresi
on
--> base=3
base = 3
--> alt=4
alt = 4
--> cadena
cadena = hola
--> a=2*a
a = 6
Computaci
on en Ingeniera de Procesos
22 / 76
Uso
almacena el u
ltimo resultado
almacena el valor de = 3.1415927
almacena el valor de e= 2.7182818
almacena el valor de 1
epsilon de la m
aquina
infinito
resultado no n
umerico (not a number)
--> %pi
%pi =
3.1415927
--> %eps
ans =
--> %e
%e =
2.7182818
--> log(%e)
ans =
2.220446049D-16
--> format(16)
--> %e
%e =
2.718281828459
--> sqrt(-1)
ans =
i
Computaci
on en Ingeniera de Procesos
23 / 76
/
*
+
pmdulo
Operaci
on
Potencia
Divisi
on
Multiplicaci
on
Suma
Resta
M
odulo
Ejemplo
23
6/3
2*3
2+3
2-3
pmodulo(17,3)
Resultado
8
2
6
5
-1
2
--> 2+3
ans =
5.
--> (2+3)*4
ans =
20.
--> 2+3*4
ans =
14.
--> pmodulo(17,3)
ans =
2.
Computaci
on en Ingeniera de Procesos
24 / 76
Operaci
on
Igual
Diferente de
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Ejemplo
4==5
2 = 3
10 < 3
5 > 4
7 <= 7
3.5 >= 10
Resultado
F
T
F
T
T
F
--> 1+2>7-3
ans =
F
--> 1>2==(2<3)
ans =
F
--> 1<2<3
ans =
T
--> 3>4<5
ans =
T
--> 1>2==2<3
ans =
T
Computaci
on en Ingeniera de Procesos
25 / 76
A
F
F
T
T
B
F
T
F
T
A&B
F
F
F
T
A|B
F
T
T
T
Operaci
on
y
o
negaci
on
AB
T
T
F
F
--> 0&1|1
ans =
T
--> 0&(1|1)
ans =
F
Computaci
on en Ingeniera de Procesos
Ejemplo
2&3
3|5
7
Resultado
T
T
F
Operador
()
*,/,fix
==,=, <, >, <=, >=
&
|
Jerarqua
(mayor)
(menor)
--> 5*4>0&4<3
ans =
T
-->
2(3&0/5)>pmodulo(45,6)
ans =
F
26 / 76
Uso
calcula la raz cuadrada de x
funci
on exponencial
funci
on logaritmo natural
calcula sen(x)
calcula cos(x)
calcula tan(x)
calcula sen1 (x)
calcula cos1 (x)
calcula tan1 (x)
--> cos(%pi)
ans =
- 1.
--> exp(1)
ans =
2.7182818
--> log(%e)
ans =
1.
--> 4.0*atan(1)
ans =
3.1415927
--> 2*sin(3*%pi/2)
ans =
- 2.
Computaci
on en Ingeniera de Procesos
27 / 76
--> disp("!
!
Entero
Punto fijo
Punto flotante
Caracter
Cadena de caracteres
d, i
f, g
e
c
s
hola, mundo !
--> m = 3;
--> disp(m)
3.
--> pulg=2.54; cent=6.4516;
--> printf(%d pulgadas equivalen a %f cent
metros \n, m, cent)
-->
3 pulgadas equivalen a 6.451600 cent
metros
28 / 76
,s)
Computaci
on en Ingeniera de Procesos
29 / 76
..
.
A =
ai1
.
..
am1
a12
a22
..
.
ai2
..
.
am2
a1j
a2j
..
.
aij
..
.
amj
Computaci
on en Ingeniera de Procesos
..
.
..
.
a1n
a2n
..
.
ain
..
.
A = (aij )mn ,
i:fila, j:columna
amn
30 / 76
a11
a21
.
.
.
A =
ai1
..
.
am1
a12
a22
..
.
ai2
..
.
am2
a1j
a2j
..
.
aij
..
.
amj
..
.
..
.
a1n
a2n
..
ain
..
.
amn
31 / 76
7.
--> y = [1; 6; 8]
y =
1.
6.
8.
--> x(1,3)
ans =
- 4.
--> n=length(x) el n
umero de
elementos de x
n =
4
Computaci
on en Ingeniera de Procesos
--> x(3)
ans =
- 4.
--> x(3,1)
!--error 21
Indice inv
alido
--> y(2,1)
ans =
6.
--> y(2)
ans =
6.
32 / 76
2
A= 1
2
3
0
4
5
3
6
3
7 = a11 = 2, a34 = 1, etc
1
en Scilab:
--> A = [2 3 5 -3; 1 0 3 7; -2 4 6 1]
--> A =
2. 3. 5. -3.
1. 0. 3. 7.
-2. 4. 6. 1.
--> A(3,4)
ans =
1.
--> A(1,3)
ans =
2.
--> A(2:3,:)
ans =
1. 0. 3. 7.
-2. 4. 6. 1.
Computaci
on en Ingeniera de Procesos
--> A(:,2:3)
ans =
3. 5.
0. 3.
4. 6.
--> [m, n] = size(A)
devuelve el numero de filas y
columnas
m =
3
n =
4
33 / 76
Descripci
on
Crea vector fila con sus elementos
igualmente espaciados
Crea vector fila con igualmente
n elementos espaciados
Crea matriz de puros ceros con
m filas y n columnas
Crea matriz de puros unos con
m filas y n columnas
Crea matriz m n con
entradas aleatorias
Crea una matriz identidad n n
--> c
c =
0.
0.
--> d
d =
1.
1.
= zeros(3,2)
0.
0.
= ones(2,3)
1.
1.
1.
1.
34 / 76
Descripci
on
length(x)
[m,n] = size(X)
matrix(X,m,n)
max(x)
max(X,r)
min(x)
min(X,r)
Retorna
Retorna
Retorna
Retorna
Retorna
Retorna
Retorna
-->Q = matrix(t,2,3)
Q =
-->t = 1:6
t =
1.
2.
3.
4.
5.
6.
-->length(t)
ans =
1.
2.
2.
-->u = ones(2,3)
u =
1.
1.
1.
1.
-->[m,n] = size(u)
n =
5.
6.
3.
=
4.
6.
-->max(Q)
ans =
6.
-->min(Q,r)
ans =
1.
3.
4.
-->max(Q,r)
ans =
6.
1.
1.
el n
umero de elementos de un vector x
el n
umero de filas y columnas de una matrix X
una matriz m n con elementos tomados de X
el mayor elemento de un vector x
vector fila con los elementos mayores de cada columna de X
el menor elemento de un vector x
vector fila con los elementos menores de cada columna de X
3.
5.
-->min(Q)
ans =
2.
1.
Computaci
on en Ingeniera de Procesos
35 / 76
0.
- 3.
- 1.
5.
3.
4.
1.
- 5.
3.
1.
0.
0.
3.
0.
4.
5.
3.
6.
- 3.
- 7.
- 2.
10.
0.
- 6.
- 2.
10.
-->2*X
ans =
-->-3*Y
ans =
-->A = [2 3 5 -3; 1 0 3 7; -2 4 6 0]
A =
2.
1.
- 2.
3.
0.
2.
4.
-->X+Y
ans =
- 1.
4.
-->X-Y
ans =
- 3.
7.
0.
6.
- 6.
- 9.
- 12.
- 3.
15.
-->2*X-3*Y
ans =
8.
- 2.
- 9.
- 18.
- 5.
25.
-->A + X
!--error 8
Computaci
on en Ingeniera de Procesos
36 / 76
-->M = [1 2; 3 4; 5 6]
M =
1.
3.
5.
1. + 4.i
- i
2.
2.
4.
6.
-->M
ans =
1.
2.
3.
2. - i
0
3.
4.
1.
0.
0.
5.
6.
-->N = [1; 3; 0; 5]
N =
0.
2.
0.
0.
0.
3.
-->clear, clc
-->x = [2 4 -2];
1.
3.
0.
5.
-->N
ans =
4.
1.
3.
0.
5.
i
2. + i
2.
0
Computaci
on en Ingeniera de Procesos
-->S = y*x
S =
2.
4.
6.
4.
8.
12.
- 2.
- 4.
- 6.
37 / 76
Matriz
*
-->T = [1 2 3; 3 4 5]
T =
1.
3.
2.
4.
3.
5.
-->S*T
!--error 10
Multiplicaci
on inconsistente.
56.
104.
- 28.
- 52.
-->R = [1 2 3; 4 5 6; 8 9 0]
R =
1.
4.
8.
-->R.*S
ans =
2.
16.
48.
2.
5.
9.
3.
6.
0.
Computaci
on en Ingeniera de Procesos
8.
40.
108.
- 6.
- 24.
0.
-->R.^3
ans =
1.
64.
512.
-->T*S
ans =
28.
52.
Elemento a elemento
.*
.
8.
125.
729.
27.
216.
0.
-->x.*x
ans =
4.
16.
4.
16.
4.
-->x.^2
ans =
4.
38 / 76
Computaci
on en Ingeniera de Procesos
39 / 76
Computaci
on en Ingeniera de Procesos
40 / 76
-->
-->
-->
-->
-->
clf()
t = (0:1/20:2)*%pi;
y = sin(t);
plot(t,y,ro-)
xtitle("sin(t) versus t")
La funci
on clf cierra la figura activa.
Computaci
on en Ingeniera de Procesos
41 / 76
-->
-->
-->
-->
clf()
x = linspace(0,6*%pi,50);
y=sin(x); z=cos(x);
plot(x,y,ro-,x,z,bd-)
Computaci
on en Ingeniera de Procesos
42 / 76
Color
yellow
magenta
cyan
red
green
blue
white
black
Smbolo
.
o
x
+
?
s
d
Marcadores
puntos
crculos
marcas en x
marcas en +
marcas en ?
marcas cuadradas
marcas en diamantes
tri
angulo
El comando plot puede utilizarse tambien con matrices como argumentos. Ejemplos:
plot(A): dibuja una lnea por cada columna de A en ordenadas, frente al ndice
de los elementos en abscisas
plot(x,A): dibuja las columnas (o filas) de A en ordenadas frente al vector x en
abscisas. Las dimensiones de A y x deben ser coherentes
plot(A,x): dibuja las columnas (o filas) de de A en abscisas, frente al valor de
x en ordenadas
plot(A,B): dibuja las columnas de B en ordenadas frente a las columnas de A
en abscisas, dos a dos. Las dimensiones deben coincidir.
Para mas informaciones presione: help plot.
Computaci
on en Ingeniera de Procesos
43 / 76
La funci
on clf(n) cierra la ventana o figura n
umero n.
Computaci
on en Ingeniera de Procesos
44 / 76
La primera forma de gr
afico 3D es la funci
on plot3d. Esta funci
on dibuja una
superficie en 3 dimensiones.
-->
-->
-->
-->
-->
-->
cfl()
x = -3:3;
y = x;
[xc yc] = meshgrid(x,y)
z = 9 - (x.2 + y .2 );
plot3d(x,y,z);
Computaci
on en Ingeniera de Procesos
45 / 76
4. Programacion en Scilab
Computaci
on en Ingeniera de Procesos
46 / 76
4.1 Scripts
Computaci
on en Ingeniera de Procesos
47 / 76
Computaci
on en Ingeniera de Procesos
48 / 76
Computaci
on en Ingeniera de Procesos
49 / 76
Ejemplo 4.1.1
Escriba un programa (script) en Scilab que tenga como entradas los datos enteros A y
B y escriba el resultado de la siguiente expresi
on:
(A + B)2
3
Soluci
on
INIT
ejemplo411.sce
// Dados dos enteros A y B, calcula (A+B)^2/3
A, B
RES (A + B)2 /3
RES
// Imprime el contenido de la variable RES:
disp(RES);
FIN
Computaci
on en Ingeniera de Procesos
50 / 76
Ejemplo 4.1.2 (Area
y permetro de un rect
angulo)
Escriba un programa (script) en Scilab tal que dado como datos la base y la altura de
un rect
angulo, calcule su permetro y
area.
Soluci
on
INIT
rectangulo.sce
BASE , ALTURA
AREA, PERIMETRO
FIN
Computaci
on en Ingeniera de Procesos
51 / 76
4.2 Funciones
Archivos de texto plano sin formato, con extensi
on .sci
Programas que resultan complejos por mediante de scripts, se simplifican por
medio de funciones
Una vez definidas, las funciones se invocan desde la lnea de comandos o desde
un script
Sintaxis de una funci
on
function [out1, out2, ...]
sentencias
endfunction
donde out1 , out2, ... son los valores de retorno; in1, in2, ... son los argumentos de la
funci
on y nombre es el nombre de la funci
on.
cuadrado.sci
function y = cuadrado(x)
// Calcula el cuadrado de un nombre
y = x*x;
endfunction
Computaci
on en Ingeniera de Procesos
-->cuadrado(3)
ans =
9.
-->cuadrado(t)
!--error 4
Variable indefinida: t
52 / 76
endfunction
AREA = BASE*ALTURA;
PERIMETRO = 2*(BASE+ALTURA);
function z = perimetro(x,y)
// Calcula el perimetro de un cuadrado
// de lados x e y
z = 2*(x+y);
endfunction
Ingrese la base: 2
Ingrese la altura: 3
El area es 6.000000 y el perimetro es 10.000000
Computaci
on en Ingeniera de Procesos
53 / 76
Estructuras repetitivas:
I
I
for - end
while - end
break
continue
return
a continuaci
on analizaremos cada una de estas instrucciones.
Computaci
on en Ingeniera de Procesos
54 / 76
La instrucci
on selectiva determina si una instrucci
on particular se ejecuta
o no, seg
un el cumplimiento de una condici
on (P).
La representaci
on de una estructura selectiva se hace con palabras
(pseudoc
odigo pseudo code) o por medio de una figura geometrica
(diagrama de flujo flowchart).
Sintaxis
No
if P
Instrucciones;
Si
end
donde
Instrucciones
P: condici
on o condiciones a evaluar.
Instrucciones: Instrucciones a
evaluar si la condici
on P es
verdadera.
Computaci
on en Ingeniera de Procesos
55 / 76
Si
No
Sintaxis
if P
Instrucciones1
Instrucciones2
Instrucciones1;
else
Instrucciones2;
end
Computaci
on en Ingeniera de Procesos
56 / 76
Si
P1
No
Sintaxis
if P1
Instrucciones1
Si
Instrucciones21
No
P2
Instrucciones22
Computaci
on en Ingeniera de Procesos
Instrucciones1;
elseif P2
Instrucciones21;
else
Instrucciones22;
end
57 / 76
Soluci
on
INIT
Si
par.sce
pmodulo(a, 2) == 0
el num
ero
es par
No
// Lee entero
a = input(Ingrese un entero: );
Si
pmodulo(a, 3) == 0
El n
umero es
imapr y es
divisible por 3
No
El n
umero es
imapr y no es
divisible por 3
if (pmodulo(a,2) == 0) then
printf(El numero es par );
elseif (pmodulo(a,3) == 0) then
printf(El numero es impar y ...
es divisible por 3 );
else
printf(El numero es impar y ...
no es divisible por 3 );
end
FIN
Computaci
on en Ingeniera de Procesos
58 / 76
V VI
V VF
No
Sintaxis
Si
Sentencias
for V=VI:ID:VF
Sentencias;
end
V V + ID
Computaci
on en Ingeniera de Procesos
59 / 76
INIT
1,2,3,4,5
6,7,8,9,10
FIN
Computaci
on en Ingeniera de Procesos
naturales1.sce
disp(1);
disp(2);
disp(3);
disp(4);
disp(5);
disp(6);
disp(7);
disp(8);
disp(0);
disp(10);
60 / 76
i 1
i 10
No
Sintaxis
Si
i
for i=1:10
disp(i);
end
i i +1
FIN
Computaci
on en Ingeniera de Procesos
61 / 76
Ejemplo 4.4.3
Resuelva el ejemplo (4.4.1) que imprima los enteros impares desde 1 hasta 10.
Soluci
on
INIT
i 1
i 10
No
Sintaxis
Si
i
for i=1:2:10
disp(i);
end
i i +2
FIN
Computaci
on en Ingeniera de Procesos
62 / 76
i 10
i 1
No
Sintaxis
Si
i
for i=10:-1:1
disp(i);
end
i i 1
FIN
Computaci
on en Ingeniera de Procesos
63 / 76
Ejemplo 4.4.5
Realice un algoritmo que sume los n
umeros enteros desde 1 hasta N.
Soluci
on
Datos:
I
Variables de salida
I
SUMA
Computaci
on en Ingeniera de Procesos
64 / 76
INICIO
SUMA 0
sumaN.sce
i 1
i N
No
Si
SUMA SUMA + 1
SUMA = 0;
// inicializa acumulador
for i=1:N
SUMA = SUMA+i;
end
disp(SUMA);
i i +1
SUMA
FIN
Computaci
on en Ingeniera de Procesos
65 / 76
Variables de salida
I
PROD
Computaci
on en Ingeniera de Procesos
66 / 76
INICIO
PROD 1
factorial.sce
i 1
i N
No
Si
PROD PROD 1
PROD = 1;
// inicializa acumulador
for i=1:N
PROD = PROD*i;
end
disp(PROD);
i i +1
SUMA
FIN
Computaci
on en Ingeniera de Procesos
67 / 76
EXPRESION
No
Sintaxis
Si
Instrucciones
Computaci
on en Ingeniera de Procesos
while EXPRESION
INSTRUCCIONES;
end
68 / 76
Ejemplo 4.4.7
Realice un algoritmo que calcule el promedio de los primeros N n
umeros naturales.
Utilice las estructuras repetitivas mientras y para.
Soluci
on
Variables:
I
Computaci
on en Ingeniera de Procesos
69 / 76
INICIO
promedio mientras.sce
N = input(Ingrese N: );
N
NUM 1
SUM 0
SUM N
No
Si
SUM SUM + NUM
NUM = 1;
SUM = 0;
while NUM <= N
SUM = SUM + NUM;
NUM = NUM + 1;
end
PROM = SUM/N;
printf(Promedio = %g, \n, PROM);
promedio para.sce
NUM NUM + 1
PROM = SUM/N
PROM
FIN
Computaci
on en Ingeniera de Procesos
N = input(Ingrese N: );
NUM = 1;
SUM = 0;
for i=1:N
SUM = SUM + i;
end
PROM = SUM/N;
printf(Promedio = %g, \n, PROM);
70 / 76
71 / 76
Instrucci
on utilizada dentro de un bucle (for o while)
Permite terminar el bucle envolvente mas cercano que lo
contiene
continue:
I
I
Instrucci
on utilizada dentro de un bucle (for o while)
Se utiliza para saltarse parte de una iteraci
on del bucle y
continuar o con la siguiente iteraci
on del bucle (sin salirse)
return:
I
I
Instrucci
on utilizada dentro el cuerpo de una funcion
La instrucci
on return permite salir (retornar) a una funcion
de un ciclo anidado o una estructura selectiva
Computaci
on en Ingeniera de Procesos
72 / 76
Computaci
on en Ingeniera de Procesos
73 / 76
A vaces es muy u
til almacenar datos en un archivo en el disco para su posterior
consulta. Sobre todo si los datos son grandes o/y tienen muchas informaciones.
Scilab ofrece varias funciones diferentes que se pueden utilizar para escribir y
leer datos. Cada una de ellas est
a dise
nada para una situaci
on particular.
Scilab tiene dos familias de Lectura/Escritura (I/0) de datos: Fortran-I/0 y
C-I/0.
Antes de que uno puede leer o escribir en un archivo, el archivo debe ser
abierto.
Computaci
on en Ingeniera de Procesos
74 / 76
Computaci
on en Ingeniera de Procesos
75 / 76
Las funciones read y write sirven para leer y escribir datos en ficheros,
respectivamente
--> [x] = read(file-desc, m, n, format)
donde m y n son las dimensiones de la matriz a leer.
--> write(file-desc, a, k, format)
donde a es cadena con el nombre de la matriz a guardar.
ejemplo.sce
u = file(open,exple1,unknown)
for k=1:4
a = rand(1,4)
write(u,a)
end
file(rewind,u)
x = read(u,2,4)
file(close,u)
disp(x)
Para mas informaciones: help read. Otras instrucciones: writb, readb,
uigetfile, mopen, mclose.
Computaci
on en Ingeniera de Procesos
76 / 76