Você está na página 1de 67

Software matlab caractersticas gerais

Apresentao da interface

Variveis, funes e comandos bsicos

Linguagem de programao Matlab

Mostra todos os arquivos atuais na pasta
Matlab;
Mostra o histrico de todos os comandos
realizados na command window

Mostra todas as variveis criadas e seus
respectivos tipos
Terminal e janela de realizao de comandos
individualmente
Janela de criao de programas e funes
Matlab
Variveis sempre definidas como matrizes de
dimenso N

Sem necessidade de especificar tipo de
varivel
Varivel recebe tipo de acordo com valor
recebido:
valor numrico Double (padro)
texto - char
true, false, comparao - logical
@funo function_handle


Mudar exibio das variveis numricas:
File -> Preferences -> Command Window-> Numeric Format


Funes so utilizadas da mesma forma que em
C#, C++, Java:
Funo com retorno:
x = funo(parmetros);
Ex: x = cos(3.14) x = -1
Principais funes matemticas:
sin, cos, tan, sind, cosd, tand, asin, acos, atan,
log, log2, log10, sqrt, int, diff,
Criar um programa para criar duas variveis numricas
(a=4 e b=5), uma outra que recebe a raiz da soma delas
(c=sqrt(a+b)) e a seguir, imprimir o resultado no terminal
(command window):
a = 4;
b = 5;
c = sqrt(a+b);
display(c);



Variveis lgicas -> a = true, a = false, a =
comparao
Ex:
b = 3;
c = 4;
a = (b<c);
display(a); //a = 1;
a = ~a
display(a); //a = 0;
Unidade imaginria: i ou j
Ex: a = 3 + 4*i
a = 3.0000 + 4.0000i
Comandos:
imag(a) = 4 real(a) = 3
abs(a) = 5 angle(a) = 0.9273

Funes de sada de dados no terminal:
display(x) exibe o nome da varivel e seu
contedo.
display(Texto) exibe o texto inserido.

fprintf(Texto) exibe o texto inserido
- Funciona da mesma forma que a funo printf
da linguagem C#
- Permite exibir texto e variveis simultaneamente.


'' Single quotation mark

%% Percent character

\\ Backslash

\a Alarm

\b Backspace

\f Form feed

\n New line

\r Carriage return

\t Horizontal tab

\v Vertical tab
Funo de entrada de dados: input
x = input(Texto de orientao: );
x receber um valor numrico ou uma
expresso digitada pelo usurio.
Ex: 23.124; 34+4*23; a+b^c+3
(a, b, c = variveis j declaradas no programa)
x = input(Texto de orientao: , s);
x receber a entrada do usurio como uma
string.



Declarao de vetores e matrizes

Manipulao

Funes
Matriz declarada da mesma forma que
variveis, com valores colocados entre
colchetes []
Valores na coluna seguinte so separados por
(,)
Valores na linha seguinte so separados por (;)
Ex: a = [1, 2, 3; 4, 5, 6; 7, 8, 9]
a = 1 2 3
4 5 6
7 8 9
Ferramenta :
Ex: a = 1:5 a = 1 2 3 4 5
a = 0:0.1:1 a = 0.1 0.2 0.3 (...) 0.8 0.9 1
a = [1:3 ; 4:6; 7:9] a = 1 2 3
4 5 6
7 8 9
Exerccio: Construir uma matriz 3x5, em que a
lei de formao da primeira linha seno, a
segunda cosseno e a terceira raiz
quadrada. Utilize para cada linha o vetor v =
0:0.25:1

a =
0 0.2474 0.4794 0.6816 0.8415
1.0000 0.9689 0.8776 0.7317 0.5403
0 0.5000 0.7071 0.8660 1.0000
Acessando elemento:
x(linha,coluna) = a
n
Acessando linha:
x(linha, :) = [a
1
, a
2
, a
3
, ... , a
n
]
Acessando coluna:
x(: , coluna) = [a
1
; a
2
; a
3
; ... ; a
n
]
Apagando linha ou coluna:
x(linha, :) = [ ]
x(coluna,:) = [ ]
Exerccio: Criar um programa que calcule a
distncia entre dois pontos.
P1 = (1,5), P2 = (4,9)

R: d = sqrt(sum(P1-P2));
d = 5


Indexao de elementos:
Exerccio: Resolver o seguinte sistema linear:
x + 10y 12z = 120
4x 2y 20z = 60
-x + y + 5z = 10
Matriz inversa: inv(A)
Escalonamento: rref(A)
Determinante: det(A)

Resp: x = 340; y = 50; z = 60
Resolver o sistema:
5j*x + (2-6j)*y + 7*z = log
5
(20)
9*x pi*y + sqrt(2)*z = 10.569
(1/3)*x + sen(30)*y + atan(2)*z = 21.3



Exerccio: Uma empresa apresenta as
seguintes tabelas de Produo x Hora x Ms.
Salve-as em uma nica varivel.

A = [30, 15; 20, 36];
A(:,:,2) = [12, 17; 9, 15];
A(:,:,3) = [21, 41; 45, 39];
Strings declaradas com aspas simples:
nome = Joao;
sobrenome = da Silva;
Juntar ambas strings numa matriz:
horizontalmente: (matriz 1x12)
completo = [nome, sobrenome];
completo = strcat(nome, sobrenome);
verticalmente: (matriz 2x8)
completo = strvcat(nome, sobrenome);


Podem ser tanto Scripts quanto Functions:

Script arquivo contendo simplesmente uma
sequncia de comandos do MATLAB. Utiliza e
cria variveis do workspace

Function faz uso de suas prprias variveis
locais, recebem parmetros externos e
retornam valores.
Executa teste lgico com expresso.
Se resultado = 1 (true) : executa comandos
Se resultado = 0 (false) : pula para prxima expresso
Forma geral:
if (expresso1)
comandos1;
elseif (expresso2)
comandos2;
else
comandos 3;
end
if (a == 0)
display('zero');
elseif (a >= b)
display('maior');
display(a);
elseif (L)
fprintf('Valor de a: %f, valor de b = %f\n', a, b);
c = a+b;
display(c);
else
c = a+b+4;
display(c);
end


Exerccio: Fazer um programa que receba do
usurio um nmero e em seguida diga se o
nmero par ou mpar. Caso no seja um
nmero inteiro, imprima mensagem de erro.
Realiza um certo conjunto de comandos numa
pr-determinada quantidade de vezes.

Forma geral:
for x = valor
comandos;
end

valor : pode ser vetor ou matriz numricos
x = vetor: a cada iterao, x receber o valor
de cada elemento do vetor. Ciclo termina ao
chegar no ltimo elemento.
x = matriz: a cada iterao, x receber um
vetor coluna, com o valor de cada coluna da
matriz. Ciclo termina ao chegar na ltima
coluna.

Exemplos:
for x = 0:0.1:1
soma = soma + x;
end

for k = eye(3)
display(k);
end
Exerccio:
Criar um programa que mostre todos os
divisores de um nmero recebido do usurio.

Criar um programa que diga se o nmero
digitado primo ou no.
Repetidamente executa comandos at que o
valor da expresso seja falso
Forma geral:
while (expresso)
comandos;
end
expresso:
comparao: a<b, a>b, a==b, a~=b
Varivel lgica pr-declarada: L = true
Ps: Parar programa: ctrl+c

Exemplo:

while (a<=b)
a = a*2;
b = b + 1;
display(a);
display(b);
end
Exerccio: Escreva um programa que calcule
sucessivamente a raiz quadrada de nmeros
introduzidos pelo utilizador at que este
indique um nmero igual a 1. Utilize a funo
sqrt(x) para calcular a raiz quadrada e
input(x=?) para ler os valores. Mostrar ao fim
da execuo o nmero de iteraes.
Ferramentas de mudana do fluxo:
break encerra o loop while ou for
Ex: for k=2:x-1
if (mod(x,k) == 0)
break
end
end
continue pula para a prxima iterao
Ex: for k = 1:x
if (mod(x,k) == 0)
fprintf('%.0f, ', k);
continue
end
fprintf('\n');
end
Mecanismo de escolha entre vrias opes,
baseado em comparao de igualdade.

Executa o primeiro caso em que a comparao
satisfeita. Imediatamente aps executar o
caso escolhido, o switch encerrado.

Caso nenhum dos casos satisfaa a condio,
executado o otherwise.

Forma geral:
switch varivel_teste
case valor_1
comandos_1;
case valor_2
comandos_2;
(...)
otherwise
comandos_n;
end
Exemplo:
metodo = Bilinear';

switch lower(metodo)
case {'linear','bilinear'}
display('Mtodo linear.');
case 'cubico'
display('Mtodo cbico.');
case 'mais proximo'
display('Mtodo por mais prximo.');
otherwise
display('Mtodo desconhecido.');
end

Exerccio: criar um programa que, de acordo
com a entrada do usurio, escolha entre
executar um dos programas criados
anteriormente: nmero primo, divisores, par
ou mpar. Caso a entrada seja invlida, mostrar
mensagem de erro.
Formam outro tipo de arquivo *.m
No podem ser declaradas na Command
Window
Recebem e retornam parmetros
Fazem uso de variveis locais prprias
S possvel chamar funes que estejam
includas na pasta aberta na janela Current
Folder
Declarao:
function [sada1, sada2, ...] = nome_funo (ent1, ent2, ...)
comandos;
end

Utilizao:
[var1 var2 ...] = nome_funo(par1, par2, ...)
sada1, sada2, ... variveis que recebero
os valores que sero retornados pela funo
ent1, ent2, ... variveis que recebero os
parmetros enviados para a funo

var1 var2 ... variveis que recebero os
valores retornados pela funo
par1, par2, ... parmetros enviados para a
funo
Exemplo: Criar uma funo que receba o
logaritmando e a base e retorne o logaritmo
correspondente.

function logarit = logbase (logarit, base)
a = log(logarit);
b = log(base);
logarit = a/b;
Exerccios:
Criar uma funo para calcular a mdia de n
valores.
Criar uma funo que encontre o mdc
(mximo divisor comum) dentre diversos
nmeros.
Criar uma funo que encontre o mmc
(mnimo mltiplo comum) entre n nmeros.


Faa um script que leia um vetor com as notas de
uma turma e que calcule o seguinte:
a) Percentagem das notas positivas (> = 80);
b) Percentagem das notas negativas (< 40 );
c) Mdia das notas positivas;
d) Mdia das notas negativas;
e) Mdia geral das notas.
Use como vetor de notas:
[ 55 75 93 100 86 15 23 39 81 78.5 63 0 84 67 71 10
89 9 72 51.5]
Faa um script que leia um vetor com as notas de
uma turma e que calcule o seguinte:
a) Percentagem das notas positivas (> = 80);
b) Percentagem das notas negativas (< 40 );
c) Mdia das notas positivas;
d) Mdia das notas negativas;
e) Mdia geral das notas.
Use como vetor de notas:
[ 55 75 93 100 86 15 23 39 81 78.5 63 0 84 67 71 10
89 9 72 51.5]
plot(a, b) desenha um grfico 2D com os
vetores a e b, de mesmo tamanho,
associando cada par de elementos de mesmo
endereo a um ponto do grfico.
plot(x
1
, y
1
, x
2
, y
2
, ...) desenha vrias linhas
no mesmo grfico
Show plot tools and dock figures
ferramenta de edio do grfico desenhado
Exemplo:
x = -2:0.01:2;
y = x.^2;
plot(x, y);

Exemplo:
x = -pi:0.01:pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1 ,x , y2)
x=1:1000;
for k=1:5
y(k,:)=k*log(x);
end
plot(x,y)

Clculos realizados apenas com smbolos
matemticos
Possibilidade de utilizar funes como
diff(derivada), int(integral),
fourier(transformada de fourier), etc
syms x cria uma varivel simblica x
X = sym( *a,b;c,d+) cria uma matriz
simblica X contendo as variveis simblicas a,
b, c, d
Exemplo:
syms x;
x = x^2;
y = int(x); % y = x^3/3
y = int(x,1,3); % y = 26/3
y = diff(x); % y = 2*x


Exemplo:
M = sym(*a,b;c,d+);
M2 = 2*M;
[ 2*a, 2*b]
[ 2*c, 2*d]
d = det(M2);
4*a*d - 4*b*c


Capazes de armazenar a maioria das estruturas
conhecidas no MATLAB em uma nica varivel:
- nmeros
- caracteres
- strings
- matrizes numricas
- matrizes de caracteres
til para organizar e armazenar estruturas de
diferentes tipos.
Facilidade de manipular strings.
Declarao:
A = { ... }
, separa colunas
; separa linhas
Manipulao:
A(x,y) = (...) - acessar linha x, coluna y

Ps: ferramentas de acesso de elementos funciona
semelhante ao de matrizes normais.

Você também pode gostar