Universidade do Estado do Rio de Janeiro
Instituto de Química
Prof André Luís Alberton
Índice

Leitura e exportação de dados¶

O Scilab permite a leitura e escrita de dados de arquivos. Dentre algumas formas mais funcionais, inclue-se:

  • em Excel (atualmente, apenas em arquivos do Excel 97-2003, com extensão .xls). Isto é incômodo, pois teríamos que salvar os arquivos atuais do Excel como versões anteriores
  • em .csv (comma separated values, valores separados por vírgulas ou outros espaçadores)
  • em arquivos de texto (.txt e .dat)
  • podemos também abrir estruturas de dados que tenham sido salvas no próprio Scilab

Em Excel¶

Esta forma exige o uso de arquivos do Excel de versões anteriores (versão 97-2003). O comando readxls permite acessar o arquivo de Excel.

sheets = readxls(caminho_do_arquivo)

 Quem desejar, podem consultar demonstrações em vídeo neste link. .

Em arquivos .csv¶

Os arquivos podem ser lidos rapidamente com o comando csvRead. É conveniente que os arquivos sejam salvos no formato .csv, com um separador escolhido (vírgula ou ponto-e-vírgula). De forma genérica, sugere-se que os arquivos sejam abertos no formato de texto, e havendo necessidade, converta-se posteriormente na programação os dados correspondentes a números na forma numérica no Scilab. Considere um exemplo.

Exemplo - Importando dados termodinâmicos¶

Considere o arquivo de dados termodinâmicos salvo como DadosTermodinamicos.csv. Os seguintes comandos permitem extrair todos os dados e converter os dados numéricos em valores numéricos

// caminho do arquivo (ajuste o caminho para o seu caso)
arquivo = 'C:\Users\User\Desktop\DadosTermodinamicos.csv'
// leitura do arquivo
Dd = csvRead(arquivo, ';' , [], "string")

// recupera os nomes dos compostos
nomes = Dd(2:$,1)
// recupera os coeficientes para o cálculo de Cp da fase gás, convertendo-os em números com o comando strtod
coefCpG = strtod(Dd(2:$,3:6))

// assim poderíamos prosseguir...

Em arquivos de texto¶

Algumas formas são possívels. Dentre elas, o uso dos comandos mgetl(fd,texto) e mputl(txt, fd), respectivamente, para leitura e escrita dos textos. No caso da leitura de arquivos, a função meof(fd) pode ser utilizada para verificar o final de um arquivo. A variável fdcorreponde à descrição do arquivo, obtida com o comando mopen() Vejamos um exemplo.

Exemplo - transferência de dados entre arquivos¶

Consdere um arquivo de texto origem.txt (baixe aqui) que contenha números de 1 a 10 (um número em cada linha). Deve-se passar os dados deste arquivo para outro arquivo chamado destino.txt. O seguinte código em Scilab faz isto

arq1 = 'C:\Users\User\Desktop\origem.txt'
arq2 = 'C:\Users\User\Desktop\destino.txt'
// abre o arquivo
fd1 = mopen(arq1)
fd2 = mopen(arq2,'wt') // a opção 'wt' cria uma arquivo se não houver.
// contador de linhas
i = 0; 
// enquanto não chega ao final do arquivo origem.txt
while ~meof(fd1) do
   // lê a próxima linha
   txt = mgetl(fd1,1);
   // escreve a linha na tela
   disp(txt) 
   // escreve a linha no arquivo  destino.txt
   mputl(txt,fd2)
   // atualiza o número de linhas lidas
   i = i + 1;
end
// fecha os arquivos
mclose(fd1)
mclose(fd2)

Carregando dados de variáveis salvas no próprio Scilab¶

Com o comando save(arquivo,variaveis)podemos salvar dados de variáveis. Havendo necessidade, podemos carregá-las com o comando load(arquivo). Vejamos um exemplo.

// caminho do arquivo onde será salvo
arq = 'C:\Users\User\Desktop\variaveis.dat'

// matriz
M =  [ [2, 1, 3;
        4, -4, 0]]

// vetor
v = [3, 4, 5]

// texto
txt = 'Scilab Sim!!!!'

// juntando tudo numa lista
lst = list(M,v,txt)

// salvando 
save(arq,'lst')

// limpando tudo
clear

// recuperando o nome do arquivo
arq = 'C:\Users\User\Desktop\variaveis.dat'

// verificando se existe alguma variável chamada 'lst', veremos que não
isdef('lst')

// carregando
load(arq)

// escreva a variavel lst na memória
lst

Bibliografia¶

  • Smith, J.M., Ness, H.C.V., Abbott, M.M., 2007. Introdução a termodinamica da engenharia quimica. LTC.