Sie sind auf Seite 1von 14

Programação em MATLAB

• Funções de Entrada / Saída


• Construção de gráficos

Instituto Superior Técnico,


Dep. de Engenharia Mecânica - ACCAII

Entrada / Saída de dados

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 2

1
Função pré-definida input
Descrição: apresenta uma mensagem e solicita uma
entrada do utilizador pela linha de comandos

Sintaxe: user_entry = input('prompt')


user_entry = input('prompt', 's‘)

>> Numero_Aluno = input('Número de aluno: ')


Número de aluno: 55555
>> Nome_Aluno = input('Nome: ','s')
Nome: João Manuel
>> Nota_Aluno = input(‘Nota: ','s')
Nota: 10.5
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 3

Função pré-definida disp


Descrição: apresenta o conteúdo de um vector no ecrã

Sintaxe: disp(X)
>> X = ['Nome: ', NomeAluno];
>> disp(X)
Nome: João Manuel
>> X = ['Número: ', NumeroAluno];
>> disp(X)
Número:
>> X = ['Número: ', num2str(NumeroAluno)];
>> disp(X)
Número: 55555
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 4

2
Função pré-definida fprintf
Descrição: apresenta o conteúdo formatado de uma
cadeia de caracteres no ecrã

Sintaxe: fprintf(text)
fprintf(format, var)

Especificação da cadeia de formatação:

% 0- 12 .5 u

Inicio da Caracter de
especificação controlo
Flags Tamanho Precisão
da cadeia
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 5

Utilização de caracteres de formatação


Descrição Caracteres Descrição
Sinal - Justificação à esquerda
Sinal + Impressão do caracter de sinal ("+" ou "-")
Flags
Espaço Insere espaço em branco
Zero Enche espaço disponível com zeros
\n New line
Caracteres
\t Horizontal tab
de
\b Backspace
formatação
%% Símbolo de percentagem
%c Single character
Caracteres %d,%i Decimal notation (signed)
de %u Decimal notation (unsigned)
controlo %f Fixed-point notation
%s String of characters
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 6

3
Função pré-definida fprintf
>> fprintf('Hello \n')
Hello
>> fprintf('Maio é o %dº mês do Ano.\n',5)
Maio é o 5º mês do Ano.
>> r = 1;, fprintf('Área circulo = %f m2.\n', pi*r^2)
Área circulo unitário 3.141593 m2.
>> B = [9.9 8.8 7.7; 9900 8800 7700];
>> fprintf('X é %6.2f metros ou %8.3f mm\n‘, B)
X é 9.90 metros ou 9900.000 mm
X é 8.80 metros ou 8800.000 mm
X é 7.70 metros ou 7700.000 mm

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 7

Função pré-definida fprintf


Descrição: grava num ficheiro o conteúdo formatado
de uma cadeia de caracteres

Sintaxe: fprintf(fid,text)
fprintf(fid,format, var)
fid = fopen(nome, permissões)
fclose(fid)
>> x = 0:.1:1;
>> y = [x; exp(x)];
>> fid = fopen('exp.txt', 'wt');
>> fprintf(fid, '%6.2f %12.8f\n', y);
>> fclose(fid)
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 8

4
Função pré-definida save
Descrição: grava num ficheiro um conjunto de
variáveis sem formatação

Sintaxe: save
save NomeFicheiro Variáveis
save(NomeFicheiro, 'Variáveis')

>> save NomeFicheiro a*


>> save ficheiro.mat v1
>> save 'meu ficheiro.mat' v1
>> save(NomeFicheiro, 'v1‘)

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 9

Função pré-definida load


Descrição: carrega de um ficheiro para o workspace
um conjunto de variáveis sem formatação

Sintaxe: save
save NomeFicheiro Variáveis
save(NomeFicheiro, 'Variáveis')

>> load NomeFicheiro a*


>> load ficheiro.mat
>> load 'meu ficheiro.mat'
>> d = load(NomeFicheiro, 'v1')

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 10

5
Gráficos em MATLAB
• Construção fácil de gráficos a
partir de dados armazenados
em matrizes e vectores
• Altamente customizável
• Grande diversidade de tipos
de gráficos
• Possível em 2D e 3D
• Possibilidade de exportação
para outros formatos (PNG,
BMP, JPG)
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 11

Tipos de gráficos 2D

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 12

6
Tipos de gráficos 3D

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 13

Ambiente gráfico: Figure Window


Toolbar Figure Window Docking no Matlab

Plot Objects

Eixos Tipos de linha


José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 14

7
Funcionalidades da Toolbar

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 15

Função pré-definida plot


Descrição: construção de gráficos 2D na Figure Window actual

Sintaxe: plot(Y)
plot(X,Y)
plot(X,Y,S)
Parameterização das características do gráfico:

' c d -- '
Inicio da string Fim da string

Cor Marcadores Tipo de linha

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 16

8
Parameterização da função plot

Cor Marcadores Tipo de linha


b blue o circle -- dashed
c cyan d diamond -. dash dot
g green h hexagram : dotted
k black p pentagram - solid
m magenta + plus
r red . point
y yellow s square
* star
v down
< left triangle
> right triangle
^ up triangle
x x-mark

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 17

Representação de vectores x-y

» x = 1:6;
» y = [1 5 3 9 11 8];
» plot(x,y)

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 18

9
Construção de outros tipos de gráficos
Comando Descrição
plot3 construção de gráficos 3D
bar construção de gráficos 2D de barras verticais
barh construção de gráficos 2D de barras horizontais
stem construção de gráficos 2D do tipo discreto
stairs construção de gráficos 2D do tipo escada

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 19

Funções adicionais
Comando Descrição
clf apaga o gráfico na Figure Window corrente
close fecha a Figure Window corrente
figure abre/acede à Figure Window especificada
hold congela o grafico representado na Figure Window
legend coloca a legenda na Figure Window
title coloca o titulo na Figure Window
xlabel coloca um rótulo no eixo das abcissas
ylabel coloca um rótulo no eixo das ordenadas
grid coloca uma grelha no background do gráfico
axis formata a gama de valores nos eixos do gráfico
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 20

10
Propriedades dos gráficos

» x = 11;
» y = 48;
» plot(x,y,'r*')
»
» axis([9 12 35 55])
» xlabel('Time')
» ylabel('Temperature‘)

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 21

Representação de múltiplos gráficos

» clf
» x = 0: 2*pi/40: 2*pi;
» y = sin(x);
» plot(x,y,'ro')
» hold on
» y = cos(x);
» plot(x,y,'b+')
» legend('sin', 'cos')
» title('sin and cos on one graph‘)

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 22

11
Gráficos de barras, grelha e legenda

» clf
» x = 1:5; y1 = [2 11 6 9 3];
» y2 = [4 5 8 6 2];
» figure(1)
» bar(x,y1) % Gráfico de Barras
Fígura 1
» figure(2)
» plot(x,y1,'k')
» hold on
» plot(x,y2,'ko')
» grid on
» legend('y1','y2‘)
Fígura 2
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 23

Gráficos a partir de dados em ficheiro

» load timetemp.dat
» time = timetemp(1,:);
» temp = timetemp(2,:);
» plot(time,temp,'k+')
» xlabel('Time')
» ylabel('Temperature')
» title('Temperatures one afternoon')
»
José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 24

12
Formatação avançada de gráficos
>> x = -pi:pi/10:pi;
>> y = tan(sin(x)) - sin(tan(x));
>> plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 25

Trabalhar com o Plot Edit Mode


Botão para modo de edição Adicionar legenda, texto e setas

Double-click para
seleccionar objecto
Posicionar rótulos e outros
objectos por click e arrasto

Click no botão direito do rato para


aceder às propriedades do objecto

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 26

13
Trabalhar com o Ploting Tools
Figure Pallete Axes subplots Lineseries Figure Plot browser

Activar as
Ploting Tools

Property Editor Adicionar dados Property Inspector


José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 27

Referências

• Capítulo 2 de Stormy Attaway (2009), “Matlab: A Practical


Introduction to Programming and Problem Solving”, Elsevier.
• Manuais do MATLAB
• Graphics

José Borges - Miguel Pedro Silva Computação e Programação 2009 / 2010 28

14

Das könnte Ihnen auch gefallen