Buscar

Aula15 Matlab arquivo

Prévia do material em texto

Programação de Computadores
Matlab
Arquivo em detalhes
Prof. Dr. Erivelton Geraldo Nepomuceno
Depto. Engenharia Elétrica
Sala 4.23 EL – Prédio do DEPEL
http://www.ufsj.edu.br/nepomuceno 
nepomuceno@ufsj.edu.br 
1/22
Usando save como função
Usando load como função
Arquivos binários
■ Conjunto de dados armazenados em HD como 
seqüências de bits (0’s e 1’s)
■ Todo arquivo do computador é, no final das contas, 
binário
■ Saber como trabalhar em nível binário garante acesso a 
qualquer arquivo
■ Comandos load e save só operam em arquivos no 
formato matlab (.mat)
■ Conhecer o formato dos dados no arquivo é de 
responsabilidade do programador
■ Duas formas de tratar o conteúdo do arquivo:
◻ Numérico
◻ Texto
No caso de texto: ASCII
American Standard Code for Information Interchange; Código Padrão Americano para o Intercâmbio de 
Informação
Manipulação de arquivos binários
■ fopen: abertura de arquivos
■ fclose: fechamento de arquivos
■ fscanf: lê texto no arquivo
■ fprintf: escreve texto no arquivo
■ fread: lê dados numéricos
■ fwrite: escreve dados numéricos
■ fseek: muda a posição do indicador do arquivo
■ ftell: diz em que posição do arquivo o indicador 
está
■ feof: indica final de arquivo (end of file)
fopen
fid = fopen(nomedoarquivo, permissao)
■ Abre ou cria um arquivo
VARIÁVEL QUE CONTÉM O 
IDENTIFICADOR DO ARQUIVO
fclose
fclose(fid)
■ Fecha o arquivo
■ Deve sempre ser usado ao final do 
programa que abriu o arquivo
VARIÁVEL QUE CONTÉM O 
IDENTIFICADOR DO ARQUIVO
fprintf
■ Escreve um texto no arquivo
■ É a mesma função de sempre
■ Agora, há um novo parâmetro, que identifica o arquivo a 
ser escrito
■ count: número de dados escritos com sucesso
■ fid: identificador do arquivo
■ format: texto formatado
■ A: dados
count = fprintf(fid, format, A)
fscanf
■ Lê um texto do arquivo
■ A: variável que vai conter resultado lido
■ fid: identificador do arquivo
■ format: texto formatado
■ size: quantidade de dados a ser lido
A = fscanf(fid, format)
A = fscanf(fid, format, size)
Um exemplo
Arquivo aberto no notepad
Na seqüência do exemplo
fread
A = fread(fid)
A = fread(fid, count)
A = fread(fid, count, precision)
■ Lê dados no formato numérico
■ fid: identificador do arquivo
■ count: quantidade a ser lida
■ precision: precisão do dado (padrão uint8)
Exemplo: A = fread(fid, 1, ‘float’);
Count:
N (fixo)
Inf (todo arquivo)
[m, n] ou [m, inf] 
→preenche uma matriz
Precisão
■ Número de bits/bytes 
usados para representar 
um número digitalmente
■ Linguagens como C ou 
Fortran criam variáveis 
conforme sua precisão
■ Declarações em C 
seguem a sintaxe:
int i = 0;
double x = 2.8;
fwrite
count = fread(fid, A)
count = fread(fid, A, precision)
■ Escreve dados no formato numérico
■ fid: identificador do arquivo
■ A: dado (matriz) a ser escrito
■ precision: precisão do dado (padrão uint8)
■ count: indica quantos dados foram escritos com 
sucesso
Exemplo: count = fwrite(fid, 234.87, ‘float’);
Um arquivo binário numérico no notepad
fseek
■ Movimenta o indicador de posição no arquivo
■ offset: a quantidade de bytes de deslocamento
■ origin: ponto a partir do qual realizará o deslocamento:
◻ ‘bof’: beggining of file (início do arquivo)
◻ ‘cof’: current position of file (posição atual)
◻ ‘eof’: end of file (fim do arquivo)
status = fseek(fid, offset, origin)
Um exemplo mais completo:
Montar arquivo com número e texto
Na seqüência: ler o arquivo
Ainda no fluxo: corrigir uma entrada
Exercício
■ Cria e preenche um arquivo com nome de 
funcionários e seus salários
■ Mostra o arquivo na tela
■ Dá 10% de aumento para todos no 
mesmo arquivo

Outros materiais

Perguntas Recentes