SlideShare uma empresa Scribd logo
1 de 41
Curso MATLAB 6
Instrutor: Marcelo Escobar
Tópicos Especiais
Tópicos Especiais:
Importação e Exportação de Dados.
Interfaces de Programação
Arquivos de áudio e vídeo.
Interfaces gráficas com o Usuário.
ImportaçãoExportação de Dados e
Informações:
.
Podemos exportar e importar dados através de um procedimento
interativo ou automático.
Normalmente quando criamos rotinas queremos automatizar a
troca de dados entre aplicativos e programas.Em casos mais
simples podemos apenas querer ler uma tabela em excel sem ter
que digitar todos os dados em Matlab.
A seguir temos exemplos de que forma podemos fazer isso entre
os aplicativos mais comuns e utilizados não só na troca de
dados(importação e exportação) como na troca de informações
(interface de programação).
Mais simples possível: FileImport Data no menu do Matlab
Importação 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]
Importação de Dados:
Podemos querer abrir um arquivo de texto e escrever nele
dados de saída da nosso programa:
>> help fopen [abri ou cria um arquivo novo]
retorna um fid [identificador do arquivo]
>>fid=fopen(‘resultados.txt’,’w’)
permissão
Tipos de Permissão:
'r' [leitura]
'w' [escrita (criação se necessário)]
>>help fclose [fecha o arquivo]
>>fclose(fid)
Escrita: >>help printf [escreve dados formatados]
Importação de Dados:
Devemos escrever o texto e indicar com % a posição do número e
inserir a formatação.
%a.bc: a= número de espaços, b=numero de dígitos.
c=Formatos: d, i, o, u, x, X, f, e, E, g, G, c, s
f-real.
e-notação cientifica
Após 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:
x = 0:.1:1; y = [x; exp(x)];
fid = fopen('exp.txt','w');
fprintf(fid,'%6.2f %12.8fn',y);
fclose(fid);
>>help scanf [ lê dado de um arquivo]
Importação/Exportação de Dados:
Via Troca Dinâmica de Ddados [DDE] e ActiveX.
>>help winfun
1) DDE:
Canal=ddeinit(‘excel’, ‘nome_do_arquivo.xls’)
[inicio de comunicação]
M = ddereq(canal, 'r1c1:r2c2'); [ importação]
N=ddepoke(canal,'r1c1:r5c5', eye(5)); [exportação]
rc=ddeterm(canal) [ fim de comunicação]
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');
Ativação 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: [ importação]
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 visível]
Para arquivo novo:
Doc=invoke(wrd.Documents,’Add’);
Para arquivo existente:
Doc=invoke(wrd.Documents,’Open’,’myfile.doc’);
Inserir parágrafo:
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 são acionadas por botões 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 variável a ser criada no
Matlab.
Getmatrix[importa para o matlab]
Basta selecionar a célula superior esquerda onde será
colado o dado do matlab clicar em getmatrix e definir o
nome da variável putmatrix e definir o nome da variável do
Matlab.
Matlab Notebook:
Permite a execução de comandos digitados no word, uma
ferramenta bem útil para relatórios.
Para utilizar o Matlab notebook é necessário realizar um
setup:
Digite:
>>notebbok –setup
O Matlab pede a versão do seu Word e em seguida pede
dois arquivos por meio de uma caixa de dialogo, um
executável e outro .dot (normal.dot por exemplo).Esses
arquivos se encontram dentro do diretório 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:
Escreva seu texto normalmente , selecione o texto com o comando
do Matlab que deseja executar,exatamente como faria em
ambiente Matlab.
Define Input Cell [define como entrada]
Evaluate M-book [executa em Matlab os input cell definidos}
Compilação de Funções:
O Matlab permite a compilação de um arquivo m em C, o que
pode
reduzir o tempo de computação em até 40%.
Exemplo:
>>mcc –x teste_mcc [teste_mcc.m é um arquivo tipo m]
A chamada é feita normalmente, e não é necessário que o
arquivo m permaneça no diretório.
>>Mcc –m teste_mcc [cria um executável]
MEX Files:
Funções e sub-rotinas em C ou em Fortran podem ser chamadas pelo
Matlab por meio de arquivos MEX.O Matlab também pode executar
Cálculos para programas em C ou em Fortran por meio do Matlab
Engine. Estrutura do mex file:
•A rotina computacional que contém a parte do código que implementa as
operações desejadas no MEX-file. [subrotina em C ou em Fortran]
.A rotina de ligação que faz o interfaceamento entre a rotina computacional
com o MATLAB através do ponto de entrada da função mexFunction e seus
parâmetros prhs, nrhs, plhs, nlhs, onde prhs é um array com os argumentos de
entrada da direita, nhrs é o número de argumentos de entrada da direita, plhs
é um array com os argumentos de saída da esquerda e nlhs é o número de
argumentos de saída da esquerda. [Modificação 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/
MEX Files para C e C++:
MEX Files para C e C++:
Exemplo: No editor do Matlab
#include "mex.h"
/* A rotina de cálculos */
void timestwo(double *y, double x)
{ *y = 2.0*x; }
/* A rotina de ligação */
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{ double *y;
double x;
plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL); /* Cria matrix 1x1 */
x = mxGetScalar(prhs[0]); /* Obtém o valor escalar e coloca em x */
/* A função mxGetScalar retorna um valor, não um apontador */
y = mxGetPr(plhs[0]); /* Referencia o apontador para y */
timestwo(y,x); } /* Chama a função de cálculo */
Salvar como: timestwo.c
>>mex timestwo.c [cria o arquivo mex]
>>timestwo(4)
>>8
Arquivos de Som :
Som:
O Matlab permite a leitura de arquivos de som no formato .wav
e .au :
>>help auread [armazena o som tipo .au em um vetor]
>>help wavread [armazena o som tipo .wav em um vetor]
A leitura cria um vetor no qual o som fica armazenado, para
executar é necessário usar o comando sound:
>>help sound
O arquivo handel é um arquivo de amostra do Matlab que contém
um som armazenado na forma de um vetor:
Ex:>>load handel >>sound(y,Fs)
Arquivos de Imagens:
Imagem:
O Matlab permite a exibição de imagens:
>>help imread [armazena a imagem em uma matriz]
>>image [ exibe a imagem em uma janela padrão]
Ex:
>>A=imread(‘foto’,’jpg’)
>>image(A)
>>axis image off [não 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 gráfico]
>>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 gráfico, espessura,...basta usar o handle correto.
Propriedades:
Se não editarmos,ao criar uma janela, o matlab usa o padrão de
configuração.Uma propriedade que é muito comum se quere alterar é o
tamanho e posição de exibição da janela ou caixa de mensagem.
A propriedade position é que pode alterar isso , a posição esta relacionada
com as unidades utilizadas para medição, units:
>>figure
>>get(gcf,’position’) [ retorno da posição atual]
>>get(gcf,’units’) [ retorno da unidade usada para medição]
Vetor posição= [ esquerda base largura altura] [1 2 3 4]
>>get(0) nos fornece as propriedades padrão do Matlab.
1
3
2
4
Caixas de Diálogo:
>>help uigetfile [ janela para selecionar arquivo]
>>help uiputfile [ janela para salvar arquivo]
>>help fileparts [propriedades de arquivo selecionado]
>>help uisetcolor [ seleção de cor]
>>help uisetfont [ seleção 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 não]
>>help inputdlg [ caixa para entrada de dados]
>>help listdlg [ caixa para seleção em lista]
>>help menu [ caixa com menu de opções]
Caixas de Diálogo:
Todos esses comando são fáceis 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...
Os comandos errordlg, helpdlg,msbox, funiconam de maneira similar.
>>s=questdlg(‘ Deseja sair?’,’titulo’,’sim’,’não’)
A seleção é retornada como um string em s.
Caixas de Diálogo:
Menu:
>>k=menu(‘titulo’, ‘opcao1’, opcao2’,’opcao3’)
A seleção de um dos botões retorna k=1 se o botão 1 for selecionado,
K=2, se o botão 2 for selecionado e assim sucessivamente.
Inputdlg:
>>k=inputdlg({‘ Altura:’, ‘Comprimento:’},’titulo’)
O retorno e feito em uma célula. K{1} valor dado para a altura e K{2}
valor dado para a o comprimento.
Para realizar cálculos , necessitamos converter para números.
K1=k{1}; k1=char(k1); k1=str2num(k1)
H=k1;
Uicontrols :
>>help uicontrol
O uicontrol permite a criação de uma janela com botões:
>>h=uicontrol
>>get(h) [ propriedades]
>>set(h)
Propriedade Style: {pushbutton | togglebutton |
radiobutton | checkbox | edit | text | slider | frame |
listbox | popupmenu }
Propriedade Position: Posição na janela.
Propriedade String: Texto escrito no botão.
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 botão ele executa o arquivo
contido no seu callback.
Uicontrols :
Exemplo:
edit :
>>h=uicontrol(‘style’,’edit’)
Edit serve para entrar algum dado na própria janela, ou para
retornar saídas. 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
cálculos.
>>a=str2num(a) [ conversão 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 são as de formatação,
como tamanho da fonte, cor etc... Que podem ser setadas
com set.
Uicontrols :
Exemplo:
checkbox :
>>h=uicontrol(‘style’,’ checkbox’)
Checkbox serve para selecionar alguma opção.
Se o checkbox estiver acionado, é retornado o valor 1 na
propriedade Value, e 0 caso não esteja selecionado.
Uicontrols :
Exemplo:
axes :
>>axes(‘position’, [ ])
Serve para colocar um eixo na janela para plotagem.
Assim podemos plotar na própria janela.
No caso de termos, mais de um eixo na mesma janela, é
necessário criar o eixo e plotar em seguida sobre ele.
Se no inicio já temos eixos vazios basta obter a posição
deles através do handle e sobrepor novos com o gráfico.
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 botões:
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' '.' ']'
')'};
h(i,j)=uicontrol('units','centi','position',[ A+(j-1)*1.2 ,B-(i-1)*1.2,1,1]...
,'string',s(i,j),'fontsize' ,10);
end
end
Exemplo Uicontrols :
%Chamada dos botões:
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 botões 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 , é necessário a edição de diversas
Propriedades para a criação de uma janela interativa.
O Matlab possui um aplicativo que facilita a criação de interfaces.
>>guide [ acesso ao GUI]
Um arraste permite a inserção de uicontrols.
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
botões.
Se não soubermos qual chamada representa o botão, basta dar um
clique Com o botão 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
Exemplos: Diretório do CD-ROM RotinasEspeciais

Mais conteúdo relacionado

Mais procurados

A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogoselliando dias
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacaotaniamaciel
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasdiogoa21
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem luaRafael Sanches
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKLeonardo Dalmina
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Lucas Castro
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em PythonRicardo Paiva
 

Mais procurados (20)

A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogos
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacao
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDK
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Python 01
Python 01Python 01
Python 01
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
 
Python 05
Python 05Python 05
Python 05
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Estruturas
EstruturasEstruturas
Estruturas
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 

Semelhante a Curso matlab 6 especiais

Semelhante a Curso matlab 6 especiais (20)

Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programação
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na prática
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Aula de informatica 02
Aula de informatica 02Aula de informatica 02
Aula de informatica 02
 
Matlab basico
Matlab basicoMatlab basico
Matlab basico
 
NHibernate
NHibernateNHibernate
NHibernate
 
Academia ABAP
Academia  ABAPAcademia  ABAP
Academia ABAP
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)
 
apostila matlab
apostila matlabapostila matlab
apostila matlab
 
Latex - Minicurso Básico
Latex - Minicurso BásicoLatex - Minicurso Básico
Latex - Minicurso Básico
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Aula3
Aula3Aula3
Aula3
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
 

Último

10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 

Último (7)

10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 

Curso matlab 6 especiais

  • 1. Curso MATLAB 6 Instrutor: Marcelo Escobar Tópicos Especiais
  • 2. Tópicos Especiais: Importação e Exportação de Dados. Interfaces de Programação Arquivos de áudio e vídeo. Interfaces gráficas com o Usuário.
  • 3. ImportaçãoExportação de Dados e Informações: . Podemos exportar e importar dados através de um procedimento interativo ou automático. Normalmente quando criamos rotinas queremos automatizar a troca de dados entre aplicativos e programas.Em casos mais simples podemos apenas querer ler uma tabela em excel sem ter que digitar todos os dados em Matlab. A seguir temos exemplos de que forma podemos fazer isso entre os aplicativos mais comuns e utilizados não só na troca de dados(importação e exportação) como na troca de informações (interface de programação). Mais simples possível: FileImport Data no menu do Matlab
  • 4. Importação 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]
  • 5. Importação de Dados: Podemos querer abrir um arquivo de texto e escrever nele dados de saída da nosso programa: >> help fopen [abri ou cria um arquivo novo] retorna um fid [identificador do arquivo] >>fid=fopen(‘resultados.txt’,’w’) permissão Tipos de Permissão: 'r' [leitura] 'w' [escrita (criação se necessário)] >>help fclose [fecha o arquivo] >>fclose(fid) Escrita: >>help printf [escreve dados formatados]
  • 6. Importação de Dados: Devemos escrever o texto e indicar com % a posição do número e inserir a formatação. %a.bc: a= número de espaços, b=numero de dígitos. c=Formatos: d, i, o, u, x, X, f, e, E, g, G, c, s f-real. e-notação cientifica Após 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: x = 0:.1:1; y = [x; exp(x)]; fid = fopen('exp.txt','w'); fprintf(fid,'%6.2f %12.8fn',y); fclose(fid); >>help scanf [ lê dado de um arquivo]
  • 7. Importação/Exportação de Dados: Via Troca Dinâmica de Ddados [DDE] e ActiveX. >>help winfun 1) DDE: Canal=ddeinit(‘excel’, ‘nome_do_arquivo.xls’) [inicio de comunicação] M = ddereq(canal, 'r1c1:r2c2'); [ importação] N=ddepoke(canal,'r1c1:r5c5', eye(5)); [exportação] rc=ddeterm(canal) [ fim de comunicação]
  • 8. 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'); Ativação da Planilha 2 por exemplo: Sheets = Excel.ActiveWorkBook.Sheets; sheet2 = get(Sheets, 'Item', 2); invoke(sheet2, 'Activate');
  • 9. Active X: Exemplo Excel Pegando o handle da planilha ativa: Activesheet = Excel.Activesheet; Dado que desejamos enviar: [ importação] 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.
  • 10. Active X: Exemplo Word: Active X: Word Wrd=actxserver(‘Word.Application’); Wrd.Visible=1; [torna o Word visível] Para arquivo novo: Doc=invoke(wrd.Documents,’Add’); Para arquivo existente: Doc=invoke(wrd.Documents,’Open’,’myfile.doc’); Inserir parágrafo: 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);
  • 11. 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.
  • 12. 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 são acionadas por botões na barra de ferramentas: macros
  • 13. Excel Link: Putmatrix [exporta do Matlab] Basta selecionar os dados a serem enviados, clicar em putmatrix e definir o nome da variável a ser criada no Matlab. Getmatrix[importa para o matlab] Basta selecionar a célula superior esquerda onde será colado o dado do matlab clicar em getmatrix e definir o nome da variável putmatrix e definir o nome da variável do Matlab.
  • 14. Matlab Notebook: Permite a execução de comandos digitados no word, uma ferramenta bem útil para relatórios. Para utilizar o Matlab notebook é necessário realizar um setup: Digite: >>notebbok –setup O Matlab pede a versão do seu Word e em seguida pede dois arquivos por meio de uma caixa de dialogo, um executável e outro .dot (normal.dot por exemplo).Esses arquivos se encontram dentro do diretório 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.
  • 15. Matlab Notebook: Escreva seu texto normalmente , selecione o texto com o comando do Matlab que deseja executar,exatamente como faria em ambiente Matlab. Define Input Cell [define como entrada] Evaluate M-book [executa em Matlab os input cell definidos}
  • 16. Compilação de Funções: O Matlab permite a compilação de um arquivo m em C, o que pode reduzir o tempo de computação em até 40%. Exemplo: >>mcc –x teste_mcc [teste_mcc.m é um arquivo tipo m] A chamada é feita normalmente, e não é necessário que o arquivo m permaneça no diretório. >>Mcc –m teste_mcc [cria um executável]
  • 17. MEX Files: Funções e sub-rotinas em C ou em Fortran podem ser chamadas pelo Matlab por meio de arquivos MEX.O Matlab também pode executar Cálculos para programas em C ou em Fortran por meio do Matlab Engine. Estrutura do mex file: •A rotina computacional que contém a parte do código que implementa as operações desejadas no MEX-file. [subrotina em C ou em Fortran] .A rotina de ligação que faz o interfaceamento entre a rotina computacional com o MATLAB através do ponto de entrada da função mexFunction e seus parâmetros prhs, nrhs, plhs, nlhs, onde prhs é um array com os argumentos de entrada da direita, nhrs é o número de argumentos de entrada da direita, plhs é um array com os argumentos de saída da esquerda e nlhs é o número de argumentos de saída da esquerda. [Modificação 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/
  • 18. MEX Files para C e C++:
  • 19. MEX Files para C e C++: Exemplo: No editor do Matlab #include "mex.h" /* A rotina de cálculos */ void timestwo(double *y, double x) { *y = 2.0*x; } /* A rotina de ligação */ void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { double *y; double x; plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL); /* Cria matrix 1x1 */ x = mxGetScalar(prhs[0]); /* Obtém o valor escalar e coloca em x */ /* A função mxGetScalar retorna um valor, não um apontador */ y = mxGetPr(plhs[0]); /* Referencia o apontador para y */ timestwo(y,x); } /* Chama a função de cálculo */ Salvar como: timestwo.c >>mex timestwo.c [cria o arquivo mex] >>timestwo(4) >>8
  • 20. Arquivos de Som : Som: O Matlab permite a leitura de arquivos de som no formato .wav e .au : >>help auread [armazena o som tipo .au em um vetor] >>help wavread [armazena o som tipo .wav em um vetor] A leitura cria um vetor no qual o som fica armazenado, para executar é necessário usar o comando sound: >>help sound O arquivo handel é um arquivo de amostra do Matlab que contém um som armazenado na forma de um vetor: Ex:>>load handel >>sound(y,Fs)
  • 21. Arquivos de Imagens: Imagem: O Matlab permite a exibição de imagens: >>help imread [armazena a imagem em uma matriz] >>image [ exibe a imagem em uma janela padrão] Ex: >>A=imread(‘foto’,’jpg’) >>image(A) >>axis image off [não exibe os eixos, apenas a figura]
  • 22. 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 gráfico] >>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 gráfico, espessura,...basta usar o handle correto.
  • 23. Propriedades: Se não editarmos,ao criar uma janela, o matlab usa o padrão de configuração.Uma propriedade que é muito comum se quere alterar é o tamanho e posição de exibição da janela ou caixa de mensagem. A propriedade position é que pode alterar isso , a posição esta relacionada com as unidades utilizadas para medição, units: >>figure >>get(gcf,’position’) [ retorno da posição atual] >>get(gcf,’units’) [ retorno da unidade usada para medição] Vetor posição= [ esquerda base largura altura] [1 2 3 4] >>get(0) nos fornece as propriedades padrão do Matlab. 1 3 2 4
  • 24. Caixas de Diálogo: >>help uigetfile [ janela para selecionar arquivo] >>help uiputfile [ janela para salvar arquivo] >>help fileparts [propriedades de arquivo selecionado] >>help uisetcolor [ seleção de cor] >>help uisetfont [ seleção 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 não] >>help inputdlg [ caixa para entrada de dados] >>help listdlg [ caixa para seleção em lista] >>help menu [ caixa com menu de opções]
  • 25. Caixas de Diálogo: Todos esses comando são fáceis 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... Os comandos errordlg, helpdlg,msbox, funiconam de maneira similar. >>s=questdlg(‘ Deseja sair?’,’titulo’,’sim’,’não’) A seleção é retornada como um string em s.
  • 26. Caixas de Diálogo: Menu: >>k=menu(‘titulo’, ‘opcao1’, opcao2’,’opcao3’) A seleção de um dos botões retorna k=1 se o botão 1 for selecionado, K=2, se o botão 2 for selecionado e assim sucessivamente. Inputdlg: >>k=inputdlg({‘ Altura:’, ‘Comprimento:’},’titulo’) O retorno e feito em uma célula. K{1} valor dado para a altura e K{2} valor dado para a o comprimento. Para realizar cálculos , necessitamos converter para números. K1=k{1}; k1=char(k1); k1=str2num(k1) H=k1;
  • 27. Uicontrols : >>help uicontrol O uicontrol permite a criação de uma janela com botões: >>h=uicontrol >>get(h) [ propriedades] >>set(h) Propriedade Style: {pushbutton | togglebutton | radiobutton | checkbox | edit | text | slider | frame | listbox | popupmenu } Propriedade Position: Posição na janela. Propriedade String: Texto escrito no botão. Propriedade BackGroundColor: Cor de fundo
  • 28. 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 botão ele executa o arquivo contido no seu callback.
  • 29. Uicontrols : Exemplo: edit : >>h=uicontrol(‘style’,’edit’) Edit serve para entrar algum dado na própria janela, ou para retornar saídas. 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 cálculos. >>a=str2num(a) [ conversão para numero]
  • 30. Uicontrols : Exemplo: text : >>h=uicontrol(‘style’,’text’) Text serve para escrever textos na janela. >>set(h,’string’,’ Meu texto’) As propriedades mais importantes são as de formatação, como tamanho da fonte, cor etc... Que podem ser setadas com set.
  • 31. Uicontrols : Exemplo: checkbox : >>h=uicontrol(‘style’,’ checkbox’) Checkbox serve para selecionar alguma opção. Se o checkbox estiver acionado, é retornado o valor 1 na propriedade Value, e 0 caso não esteja selecionado.
  • 32. Uicontrols : Exemplo: axes : >>axes(‘position’, [ ]) Serve para colocar um eixo na janela para plotagem. Assim podemos plotar na própria janela. No caso de termos, mais de um eixo na mesma janela, é necessário criar o eixo e plotar em seguida sobre ele. Se no inicio já temos eixos vazios basta obter a posição deles através do handle e sobrepor novos com o gráfico.
  • 34. 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');
  • 35. Exemplo Uicontrols : Calculadora.m: %Construcao dos botões: 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' '.' ']' ')'}; h(i,j)=uicontrol('units','centi','position',[ A+(j-1)*1.2 ,B-(i-1)*1.2,1,1]... ,'string',s(i,j),'fontsize' ,10); end end
  • 36. Exemplo Uicontrols : %Chamada dos botões: 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))]);' );
  • 37. Exemplo Uicontrols : %Chamada dos botões 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))]);');:
  • 38. GUI: Como vimos anteriormente , é necessário a edição de diversas Propriedades para a criação de uma janela interativa. O Matlab possui um aplicativo que facilita a criação de interfaces. >>guide [ acesso ao GUI] Um arraste permite a inserção de uicontrols.
  • 39. GUI: Um duplo clique sobre o uicontrol nos fornece um acesso às suas propriedades e facilmente podemos editar.
  • 40. GUI: Ao salvar o arquivo, ele cria um arquivo m com chamadas para os botões. Se não soubermos qual chamada representa o botão, basta dar um clique Com o botão 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]