Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos Especiais:
Importao\Exportao de Dados e
Informaes:
Podemos exportar e importar dados atravs de um procedimento
interativo ou automtico.
Importao de Dados:
Arquivos de Texto:
>>help dlmread [l dados em arquivo de texto]
Ex:
>>dlmread(dados.txt, ,)
Dados.txt
1, 2 ,3
Excel:
>>help xlsread [l dados em planilha de excel]
Arquivos .mat ou tipo Ascii:
>>load nome_do_arquivo
>>save nome_do_arquivo [ salva em arquivo tipo mat]
Importao de Dados:
Podemos querer abrir um arquivo de texto e escrever nele
dados de sada da nosso programa:
>> help fopen [abri ou cria um arquivo novo]
retorna um fid [identificador do arquivo]
>>fid=fopen(resultados.txt,w)
permisso
Tipos de Permisso:
'r' [leitura]
'w' [escrita (criao se necessrio)]
>>help fclose [fecha o arquivo]
>>fclose(fid)
Escrita: >>help printf [escreve dados formatados]
Importao de Dados:
Devemos escrever o texto e indicar com % a posio do nmero e
inserir a formatao.
%a.bc: a= nmero de espaos, b=numero de dgitos.
c=Formatos: d, i, o, u, x, X, f, e, E, g, G, c, s
f-real.
e-notao cientifica
Aps o formato podemos inserir: \n \t [ nova linha, tab]
Exemplo 1: x=[ 1 2 3] >>fprintf(fid,o valor de x :=%5.4f/n)
O valor de x e:
1.0000
2.0000
3.0000
Exemplo 2:
Importao/Exportao de Dados:
Via Troca Dinmica de Ddados [DDE] e ActiveX.
>>help winfun
1) DDE:
Canal=ddeinit(excel, nome_do_arquivo.xls)
[inicio de comunicao]
M = ddereq(canal, 'r1c1:r2c2'); [ importao]
N=ddepoke(canal,'r1c1:r5c5', eye(5)); [exportao]
rc=ddeterm(canal) [ fim de comunicao]
Active X:
Exemplo Excel
2) Active X:
Excel = actxserver('Excel.Application'); [ inicio]
set(Excel, 'Visible', 1); [abrindo excel]
Workbooks = Excel.Workbooks; [inserido planilhas]
Para arquivo novo:
Workbook = invoke(Workbooks, 'Add');
Para arquivo existente:
fid=invoke(Workbooks,'Open','myfile.xls');
Ativao da Planilha 2 por exemplo:
Sheets = Excel.ActiveWorkBook.Sheets;
sheet2 = get(Sheets, 'Item', 2);
invoke(sheet2, 'Activate');
Active X:
Exemplo Excel
Pegando o handle da planilha ativa:
Activesheet = Excel.Activesheet;
Dado que desejamos enviar: [ importao]
A = [1 2; 3 4];
Definindo o Range:
ActivesheetRange = get(Activesheet,'Range','A1','B2');
set(ActivesheetRange, 'Value', A); [ inserindo o valor A]
Salvando e Fechando o Excel:
invoke(Workbook, 'SaveAs', 'myfile.xls');
invoke(Excel, 'Quit');
Obs: podemos usar get para importar do excel de maneira
similar.
Active X:
Exemplo Word:
Active X:
Word
Wrd=actxserver(Word.Application);
Wrd.Visible=1; [torna o Word visvel]
Para arquivo novo:
Doc=invoke(wrd.Documents,Add);
Para arquivo existente:
Doc=invoke(wrd.Documents,Open,myfile.doc);
Inserir pargrafo:
Invoke(Doc.Content,InsertParagraphAfter);
Inserir Texto:
Invoke(Doc.Content,InsertAfter,Meu texto aqui);
Invoke(Doc.Content,InsertParagraphAfter);
Capturar fugura 1 atual:
print('-dmeta','-f1');
Invoke(Doc.Content,'Collapse',0);
Colar no documento:
Invoke(Doc.Content,'PasteSpecial',0,0,1,0,3);
Active X:
Exemplo Word:
Salvando:
Invoke(Doc,SaveAs, name,1);
Fechando o Documento:
Invoke(Doc,Close);
Terminando Contato:
Invoke(wrd,Quit);
Delete(wrd);
Obs: O comando invoke(nome da application) , permite acesso
a suas propriedades.
Excel Link:
Quando o Matlab instalado, ele cria uma pasta de nome
toolbox, dentro dessa pasta tem uma sub pasta de nome
exlink.O Arquivo excllink.xla permite troca de dados
interativos entre o Matlab e o excel.
O arquivo vem com macros que so acionadas por botes na
barra de ferramentas:
macros
Excel Link:
Putmatrix [exporta do Matlab]
Basta selecionar os dados a serem enviados, clicar em
putmatrix e definir o nome da varivel a ser criada no
Matlab.
Getmatrix[importa para o matlab]
Basta selecionar a clula superior esquerda onde ser
colado o dado do matlab clicar em getmatrix e definir o
nome da varivel putmatrix e definir o nome da varivel do
Matlab.
Matlab Notebook:
Permite a execuo de comandos digitados no word, uma
ferramenta bem til para relatrios.
Para utilizar o Matlab notebook necessrio realizar um
setup:
Digite:
>>notebbok setup
O Matlab pede a verso do seu Word e em seguida pede
dois arquivos por meio de uma caixa de dialogo, um
executvel e outro .dot (normal.dot por exemplo).Esses
arquivos se encontram dentro do diretrio em o que o
Office se encontra instalado.
Esse procedimento s precisa ser realizado uma vez.Da em
diante basta digitar >>notebook que uma arquivo de word
aberto com macros na barra de ferramentas.
Matlab Notebook:
Compilao de Funes:
O Matlab permite a compilao de um arquivo m em C, o que
pode
reduzir o tempo de computao em at 40%.
Exemplo:
>>mcc x teste_mcc [teste_mcc.m um arquivo tipo m]
MEX Files:
Funes e sub-rotinas em C ou em Fortran podem ser chamadas pelo
Matlab por meio de arquivos MEX.O Matlab tambm pode executar
Clculos para programas em C ou em Fortran por meio do Matlab
Engine. Estrutura do mex file:
A rotina computacional que contm a parte do cdigo que implementa as
operaes desejadas no MEX-file. [subrotina em C ou em Fortran]
.A rotina de ligao que faz o interfaceamento entre a rotina computacional
com o MATLAB atravs do ponto de entrada da funo mexFunction e seus
parmetros prhs, nrhs, plhs, nlhs, onde prhs um array com os argumentos de
entrada da direita, nhrs o nmero de argumentos de entrada da direita, plhs
um array com os argumentos de sada da esquerda e nlhs o nmero de
argumentos de sada da esquerda. [Modificao da subrotina]
Ser mostrado um exmplo em C. Para mais exemplos e para Fortran,visite o site:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/
Arquivos de Som :
Som:
O Matlab permite a leitura de arquivos de som no formato .wav
e .au :
>>help auread
>>help wavread
Arquivos de Imagens:
Imagem:
O Matlab permite a exibio de imagens:
>>help imread
>>image
Ex:
>>A=imread(foto,jpg)
>>image(A)
>>axis image off [no exibe os eixos, apenas a figura]
Handle:
Como j dito anteriormente cada objeto possui o seu identificador.
h-identificador.
>>set(h, propriedade1,valor1) [seta o valor da propriedade no valor1]
>>get(h, propriedade1) [ fornece o valor da propriedade]
>>h=plot(x,y) [ retorna o handle do grfico]
>>gca [ retorna o handle do eixo atual]
>>gcf [ retorna o handle da figura atual]
>>gco [ retorna o handle do objeto atual]
>>get(gca,title) [ retorna o handle do titulo no eixo atual]
>>get(gca, xlabel) [ retorna o handle do texto na abscissa atual]
Usando set podemos editar o tipo da fonte , o tamanho da fonte, a cor, o
estilo de linha do grfico, espessura,...basta usar o handle correto.
Propriedades:
Se no editarmos,ao criar uma janela, o matlab usa o padro de
configurao.Uma propriedade que muito comum se quere alterar o
tamanho e posio de exibio da janela ou caixa de mensagem.
A propriedade position que pode alterar isso , a posio esta relacionada
com as unidades utilizadas para medio, units:
>>figure
>>get(gcf,position) [ retorno da posio atual]
>>get(gcf,units) [ retorno da unidade usada para medio]
Vetor posio= [ esquerda base largura altura] [1 2 3 4]
4
1
3
Caixas de Dilogo:
>>help uigetfile [ janela para selecionar arquivo]
>>help uiputfile [ janela para salvar arquivo]
>>help fileparts [propriedades de arquivo selecionado]
>>help uisetcolor [ seleo de cor]
>>help uisetfont [ seleo de fonte]
>>help warndlg [ caixa de mensagem de warning]
>>help errordlg [ caixa de mensagem de erro]
>>help helpdlg [ caixa de mensagem de help]
>>help questdlg [caixa de pergunta-menu: sim ou no]
>>help inputdlg [ caixa para entrada de dados]
>>help listdlg
>>help menu
Caixas de Dilogo:
Todos esses comando so fceis de usar, alguns exemplos ser
mostrado a seguir:
>>h=warndlg( Veja os resultados na tela,titulo)
Lembrando, h o handle, podemos editar todas as propriedades,
como tamanho, tipo de fonte ,etc...
Caixas de Dilogo:
Menu:
>>k=menu(titulo, opcao1, opcao2,opcao3)
A seleo de um dos botes retorna k=1 se o boto 1 for selecionado,
K=2, se o boto 2 for selecionado e assim sucessivamente.
Inputdlg:
>>k=inputdlg({ Altura:, Comprimento:},titulo)
O retorno e feito em uma clula. K{1} valor dado para a altura e K{2}
valor dado para a o comprimento.
Para realizar clculos , necessitamos converter para nmeros.
K1=k{1}; k1=char(k1); k1=str2num(k1)
H=k1;
Uicontrols :
>>help uicontrol
O uicontrol permite a criao de uma janela com botes:
>>h=uicontrol
>>get(h) [ propriedades]
>>set(h)
Propriedade Style: {pushbutton | togglebutton |
radiobutton | checkbox | edit | text | slider | frame |
listbox | popupmenu }
Propriedade Position: Posio na janela.
Propriedade String: Texto escrito no boto.
Propriedade BackGroundColor: Cor de fundo
Uicontrols :
Exemplo:
pushbutton :
>>h=uicontrol(style,pushbutton,string,executar)
Pushbuttons servem para executar algum arquivo do
matlab.Para editar a chamada do arquivo, devemos inserir
o nome do arquivo na propriedade Callback.
Set(h,Callback,nome do arquivo)
Assim quando acionarmos o boto ele executa o arquivo
contido no seu callback.
Uicontrols :
Exemplo:
edit :
>>h=uicontrol(style,edit)
Edit serve para entrar algum dado na prpria janela, ou para
retornar sadas. O valor pode ser inserido no edit, usando
set:
>>set(h,string,2) coloca o valor 2 no edit
>>a=get(h,string) retorna o valor contido como um caracter.
Devemos converter para numero se quisermos efetuar
clculos.
>>a=str2num(a) [ converso para numero]
Uicontrols :
Exemplo:
text :
>>h=uicontrol(style,text)
Text serve para escrever textos na janela.
>>set(h,string, Meu texto)
As propriedades mais importantes so as de formatao,
como tamanho da fonte, cor etc... Que podem ser setadas
com set.
Uicontrols :
Exemplo:
checkbox :
>>h=uicontrol(style, checkbox)
Checkbox serve para selecionar alguma opo.
Se o checkbox estiver acionado, retornado o valor 1 na
propriedade Value, e 0 caso no esteja selecionado.
Uicontrols :
Exemplo:
axes :
>>axes(position, [ ])
Serve para colocar um eixo na janela para plotagem.
Assim podemos plotar na prpria janela.
No caso de termos, mais de um eixo na mesma janela,
necessrio criar o eixo e plotar em seguida sobre ele.
Se no inicio j temos eixos vazios basta obter a posio
deles atravs do handle e sobrepor novos com o grfico.
Exemplo Uicontrols :
Calculadora:
Exemplo Uicontrols :
Calculadora.m:
%Construcao do Formato:
esp=0.2; A=2; B=6; d=[];
%Titulo:
ht=uicontrol('style','text','units','centi','position', [A B+2 4.6
1],'string','CALCULADORA');
%Visor:
hs=uicontrol('style','edit','units','centi','position',[A+5 ,B-5, 4 ,
1],'string',d);
%Botao desliga:
ho=uicontrol('units','centi','position',[A ,B-5, 1 ,
1],'string','OFF','callback','close all');
%Visor de Memoria:
hm=uicontrol('style','text','units','centi','position', [A+1.2 B-5 2
1],'string','MEMORY');
Exemplo Uicontrols :
Calculadora.m:
%Construcao dos botes:
for i=1:4
for j=1:8
s={'1' '2' '3' '+' 'Raiz' 'Rd' 'SM' ','; '4' '5' '6' '-' 'Log' 'Exp' 'GM'
';';....
')'};
'7' '8' '9' '*' 'SEN' 'TAN' '[' '('; 'clear' '0' '=' '/' 'COS' '.' ']'
Exemplo Uicontrols :
%Chamada dos botes:
set(h(1,1),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(1,1))]);' );
set(h(1,2),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(1,2))]);' );
set(h(1,3),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(1,3))]);' );
set(h(1,4),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(1,4))]);' );
set(h(2,1),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(2,1))]);' );
set(h(2,2),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(2,2))]);' );
set(h(2,3),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(2,3))]);' );
set(h(2,4),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(2,4))]);' );
set(h(3,1),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(3,1))]);' );
set(h(3,2),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(3,2))]);' );
set(h(3,3),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(3,3))]);' );
set(h(3,4),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(3,4))]);' );
set(h(4,1),'callback', 'set(hs,''string'',d);set(hm,''string'',d);');
set(h(4,2),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(4,2))]);' );
set(h(4,3),'callback', 'm=get(hs,''string'');n=eval(m);set(hs,''string'',n);');
set(h(4,4),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(4,4))]);' );
Exemplo Uicontrols :
%Chamada dos botes cont
set(h(1,5),'callback', 'm=get(hs,''string'');set(hs,''string'',sqrt(str2num(m)));' );
set(h(2,5),'callback', 'm=get(hs,''string'');set(hs,''string'',log10(str2num(m)));' );
set(h(3,5),'callback', 'm=get(hs,''string'');set(hs,''string'',sin(str2num(m)));' );
set(h(4,5),'callback', 'm=get(hs,''string'');set(hs,''string'',cos(str2num(m)));' );
set(h(1,6),'callback', 'm=get(hs,''string'');set(hs,''string'',roun(str2num(m)));' );
set(h(2,6),'callback', 'm=get(hs,''string'');set(hs,''string'',exp(str2num(m)));' );
set(h(3,6),'callback', 'm=get(hs,''string'');set(hs,''string'',tan(str2num(m)));' );
set(h(4,6),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m)
char(s(4,6))]);','fontsize',20 );
set(h(1,7),'callback', 'set(hm,''string'',get(hs,''string''));set(hs,''string'',d);' );
set(h(2,7),'callback', 'm=get(hm,''string'');n=get(hs,''string''); set(hs,''string'',[ n m]);' );
set(h(3,7),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(3,7))]);');
set(h(4,7),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(4,7))]);');
set(h(1,8),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(1,8))]);');
set(h(2,8),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(2,8))]);');
set(h(3,8),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(3,8))]);');
set(h(4,8),'callback', 'm=get(hs,''string'');set(hs,''string'',[char(m) char(s(4,8))]);');:
GUI:
Como vimos anteriormente , necessrio a edio de diversas
Propriedades para a criao de uma janela interativa.
O Matlab possui um aplicativo que facilita a criao de interfaces.
>>guide [ acesso ao GUI]
GUI:
Um duplo clique sobre o uicontrol nos fornece um acesso s
suas propriedades e facilmente podemos editar.
GUI:
Ao salvar o arquivo, ele cria um arquivo m com chamadas para os
botes.
Se no soubermos qual chamada representa o boto, basta dar um
clique Com o boto direito do mouse e selecionar editar Callback,
a s inserir o nome do programa que ele vai executar
A interface salva como um arquivo .fig com um arquivo .m
correspondente
>>minha_interface [ chama a interface criada]
GUI:
>>nome_do_arquivo