Teoria

Introdução

E aí, pessoal! Na aula passada, vimos algumas formas de entrar dados no MATLAB, usando a função input() e digitando os valores no Command Window. Mas digamos que você tenha feito algum experimento cujas medições foram armazenadas em um arquivo de bloco de notas ou Excel, com centenas e centenas de dados, e queira transferi-los para o MATLAB para analisá-los. “SOCORRO!”, você deve estar pensando, “isso quer dizer que vou ter que entrar no MATLAB um dado por vez e criar centenas e centenas de variáveis?”

Fique tranquilo, meu jovem gafanhoto. O MATLAB tem funções para entrar com dados de arquivos externos que permitem fazer isso em uma única linha de código ;D Nessa aula, vamos ver como carregar dados de arquivos de texto, com terminação .txt, e de planilhas Excel. E de quebra, vamos aprender como salvar nossos resultados em arquivos .txt. Partiu?

Carregar e salvar arquivos .txt

Conseguimos entrar com dados salvos em um arquivo de texto com terminação .txt com apenas uma linha de código, usando a função load('Nome do arquivo'). Para vermos como ela funciona, vamos fazer um exemplo. Vamos criar um script novo e salvá-lo como teste_txt_matlab.m em nosso computador. Na mesma pasta onde o arquivo .m foi salvo, temos um arquivo de texto chamado dados.txt, que contém uma matriz 4 x 3:

Para entrar com a matriz no MATLAB, escrevemos o comando no editor:

load('dados.txt')

A função load() lê os dados do arquivo de texto linha por linha. Os valores do arquivo de texto devem estar separados por espaços ou vírgulas, e o número de colunas de dados em cada linha deve ser o mesmo. Note que nosso arquivo dados.txt tem essas características.

Uma característica legal da função load() é que ela armazena os valores do arquivo .txt em uma variável com nome do arquivo, sem a terminação .txt. Por exemplo, se acrescentarmos o comando display(dados), que manda o MATLAB mostrar a variável dados, e rodarmos o programa, a matriz 4 x 3 do arquivo dados.txt aparece no Command Window:

Note que foi criada uma variável chamada “dados” em nosso Workspace. Essa variável contém a matriz do arquivo de texto dados.txt. Bem prático, né?

Podemos também fazer operações com nossa matriz, usando o que aprendemos na seção de vetores e matrizes. Por exemplo, posso multiplicá-la por 2 e armazenar o resultado em outra variável, que chamei de dados2. O print abaixo mostra o resultado:

Se quisermos, podemos salvar o resultado em um arquivo de texto também. Para isso, usamos o comando:

save('Nome do arquivo','variável','-ascii')

A string '-ascii' indica que os dados serão salvos em um arquivo de texto. Aplicando no nosso exemplo, para salvar a matriz dados2 em um arquivo .txt, acrescentamos em nosso programinha a linha de código:

save('dados_salvos.txt','dados2','-ascii')

O arquivo dados_salvos.txt ficará salvo na mesma pasta onde está o arquivo teste_txt_matlab.m. Caso queira salvar esse arquivo em algum outro lugar, no campo 'Nome do arquivo' você deve incluir o diretório completo, por exemplo:

save(' D:\Documents\dados_salvos.txt','dados2','-ascii')

No final, nosso programinha ficou assim:

Legal, né? Agora, bora ver como faz para entrar com dados de planilhas do Excel!

Carregar dados de planilhas Excel

O MATLAB pode ler planilhas de Excel usando o seguinte comando:

[X,Y] = xlsread('Nome do arquivo')

A matriz X vai armazenar as linhas e as colunas com dados numéricos da planilha e Y será uma matriz de células contendo os textos dos cabeçalhos. Para entendermos bem como funciona, vamos de exemplo! Vamos criar um novo script e salvá-lo como excel_matlab.m em nosso computador. Na mesma pasta, temos uma planilha chamada tensao_desloc.xlsx com a seguinte informação:

No arquivo excel_matlab.m, vamos entrar com o código:

[X,Y] = xlsread('tensao_desloc.xlsx')

display(X)

display(Y)

Na primeira linha, pedimos que o MATLAB leia o conteúdo da planilha do arquivo 'tensao_desloc.xlsx'. Nas segunda e terceira linhas, pedimos para o MATLAB nos mostrar no Command Window a matriz X e a matriz de células Y. Rodando nosso programinha, temos este resultado:

Perceba que a matriz X contém os valores numéricos da planilha Excel e que a matriz de células Y é uma matriz 3 x 2, contedo as 3 linhas de texto do cabeçalho. O elemento {0×0 char} de Y é um elemento vazio pois, na planilha Excel, a célula ao lado do título “Linearidade do transdutor” estava vazia.

Um detalhezinho: a função xlsread() funciona tanto para arquivos com terminação .xls quanto para arquivos com terminação .xlsx.

E aí? Curtiu aprender esses comandos novos? Não esqueça de praticar para fixar! Bora para os exercícios ;D

***Exemplos adaptados do livro:

“An Engineer’s Guide to MATLAB: With Applications from Mechanical, Aerospace, Electrical, Civil, and Biological Systems Engineering” (3ª edição), escrito por Edward B. Magrab, Shapour Azarm, Balakumar Balachandran, James H. Duncan, Keith E. Herold e Gregory C. Walsh.