• Nenhum resultado encontrado

GERENCIAMENTO DE DADOS O MATLAB possui várias funções para gerenciamento de dados, desde funções

No documento INTRODUÇÃO AO SOFTWARE MATLAB (páginas 46-50)

extremamente simples e dedicadas como a função save() e a função load() até funções mais complexas para importação e exportação de dados diretamente de softwares que também manipulam dados como matrizes, como o Microsoft Office Excel. Além disso, o MATLAB permite manipulação de arquivos de uma forma semelhante ao que ocorria em C, usando fluxos binários e fluxos de texto.

O

S COMANDOS SAVE

()

E LOAD

()

Os comandos básicos para guardar ou reaver variáveis de arquivos são as funções save() e load(). A função save() salva em um arquivo variáveis do workspace, enquanto a função load() realiza a leitura das variáveis salvas em um arquivo. A extensão utilizada para esses arquivos é .mat. Essas funções possuem várias formas de serem chamadas, porém nesta disciplina apenas invocações simples serão abordadas.

A sintaxe básica da função save é apresentada na sequência: save nome_do_arquivo

O comando abaixo salva no diretório corrente todas as variáveis do workspace no arquivo com o nome especificado (por padrão .mat caso não seja informado).

É possível salvar apenas algumas variáveis, bastando listar as variáveis desejadas após o nome do arquivo, separando-as por espaços:

save nome_do_arquivo var1 var2 var3 (...) Execute os comandos abaixo e observe a pasta corrente.

clear all close all clc a = 10; b = rand(2,2); c = linspace(1,10,100); d = ones(3,2,3); save dados

Perceba que o arquivo dados.mat foi criado na pasta corrente. Selecionando o arquivo, observa-se que ele contém as variáveis do workspace: a, b, c e d.

É possível salvar apenas algumas variáveis, como no comando: save dados2 a c

2 AULA 12 – GERENCIAMENTO DE DADOS

Para reaver dados de um arquivo salvo utilizando o comando save(), é necessário invocar a função load(). A sintaxe é a mesma, ou seja:

load nome_do_arquivo

Obtém do arquivo especificado todas as variáveis, enquanto o comando: load nome_do_arquivo var1 var2 var3 (...)

Lê do arquivo apenas as variáveis listadas.

Execute o código abaixo para observar o comando load em ação. É necessário executar os comandos que criaram o arquivo dados.mat.

clear all %limpa TODO o workspace

close all clc

load dados whos

Caso seja necessário apenas a obtenção de algumas variáveis, basta escrever: load dados c d

É possível salvar dados em arquivos de texto diretamente com o comando save(), adicionando -ascii ao coamando.

clear all close all clc a = 10; b = rand(2,2); c = linspace(1,10,10); save -ascii dadostxt.txt

Nesse caso, os nomes das variáveis não são armazenadas no arquivo. Observe como o MATLAB salva os dados no arquivo de texto.

É possível reaver dados de um arquivo de texto, porém, nesse caso, os dados devem estar no formato de uma matriz, caso contrário o comando não será executado. Não é possível, por exemplo, ler o arquivo dadostxt.txt. No entanto, se apagarmos a primeira e a última linha do arquivo, é possível ler a matriz resultante (no caso a matriz b), pois trata-se de uma matriz quadrada 2x2. Modifique o arquivo e efetue sua leitura (ou baixe o arquivo dadostxt_mod.txt e efetue sua leitura).

clear all close all clc

load dadostxt_mod.txt whos

Note que o comando load() cria uma variável com o nome do arquivo contendo os dados lidos. Outra sintaxe possível é:

var = load('dadostxt_mod.txt'); Nesse caso, var recebe os dados do arquivo.

E

XPORTANDO E

I

MPORTANDO DADOS DO

E

XCEL

É possível exportar e/ou importar dados diretamente de planilhas do Microsoft Excel. O MATLAB disponibiliza duas funções básicas para realizar esse procedimento: xlsread() e xlswrite(). A primeira lê dados de uma planilha do Excel enquanto a segunda salva os dados em uma planilha.

A sintaxe básica da função xlswrite() é:

xlswrite('nome_arquivo',variavel,'nome_planilha','intervalo');

Esta função salva no arquivo especificado em 'nome_arquivo', na planilha de trabalho informada no campo 'nome_planilha' a variável. Além disso, os dados são inseridos no intervalo especificado. Vale lembrar os campos 'nome_planilha' e 'intervalo' são opcionais. Observe o exemplo abaixo:

clc clear all close all A = rand(6,6); B = rand(3,1); C = eye(2,6);

xlswrite('PLANILHA1.xls',A);

xlswrite('PLANILHA2.xls',B,'opa');

xlswrite('PLANILHA3.xls',C,'nova','B2');

Observe como o MATLAB procede a escrita dos dados. Perceba que mensagens de alerta são apresentadas, indicando que as planilhas de trabalho são criadas, caso não existam.

Vale lembrar que a função xlswrite(), não sobre-escreve completamente um arquivo que já existe. A função apenas adiciona ou modifica os dados do arquivo. Execute na janela de comando as seguintes linhas.

xlswrite('PLANILHA1.xls',B,'Plan2'); xlswrite('PLANILHA1.xls',C,'Plan2','E');

4 AULA 12 – GERENCIAMENTO DE DADOS

É possível também obter dados de uma planilha do Excel. A sintaxe é muito semelhante:

var = xlsread('nome_arquivo','nome_planilha','intervalo'); Esta função obtém os dados do arquivo especificado no campo 'nome_arquivo', da planilha 'nome_planilha' e do intervalo informado no campo 'intervalo'.

Baixe os arquivos PLA.xlsx e PLA2.xlsx e execute os comandos abaixo.

clc clear all close all

var1 = xlsread('PLA.xlsx'); disp(var1)

var2 = xlsread('PLA.xlsx','quase','B2:C3'); disp(var2)

var3 = xlsread('PLA.xlsx','la'); disp(var3)

var4 = xlsread('PLA2.xlsx'); disp(var4)

O MATLAB ainda possui uma série de funções análogas ao C, que também merecem ser estudadas. Execute o comando help e estude as seguintes funções: fopen, fclose, fwrite, fread, fseek, fprintf, fscanf, fgets e fgetl. Essas funções são muito semelhantes as funções utilizadas no C para manipulação de arquivos binários e arquivos de texto.

E

XERCÍCIOS

Exercício 1 Escreva uma função que testa se um número é primo ou não. Utilizando a função, crie um vetor com os 1000 primeiros números primos. Salve o vetor em um arquivo .mat, em um arquivo de texto e em uma planilha no Excel.

Exercício 2 O arquivo mensagem.mat (disponível na plataforma moodle) contém um vetor de pontos obtidos de um arquivo .wav. Utilizando a função wavplay(), tente tocar a música. A sintaxe da função é:

wavplay(dado,FS);

Onde o campo dado contém o vetor a ser tocado, enquanto FS é a frequência de amostragem do sinal (para o vetor fornecido, deve-se utilizar 11025Hz.

No documento INTRODUÇÃO AO SOFTWARE MATLAB (páginas 46-50)