7/25/2019 Matlab 4-2
1/19
O MATLAB tambm nos permite combinar comparaes
com operadores lgicos (and, note or), por exemplo:
x = [ 1, 2, 3, 4, 5];
y = [-2, 0, 2, 4, 6];
z = [ 8, 8, 8, 8, 8];
z > x & z > y
ans = 1 1 1 1 1, ou seja, todas as comparaes so
VERDADEIRAS!!!
7/25/2019 Matlab 4-2
2/19
Outro exemplo:
x = [ 1, 2, 3, 4, 5];
y = [-2, 0, 2, 4, 6];
z = [ 8, 8, 8, 8, 8];
x > y | x > z
ans = 1 1 1 0 0Isso significa que a condio verdadeira para os trs primeiros
elementos e falsa para os doi ltimos.
7/25/2019 Matlab 4-2
3/19
8.2 Fluxograma e Pseudocdigo
Com a adio da estrutura seleo e de repetio para
seu grupo de ferramentas do programa, isso torna ainda mais
importante planejar seu programa antes de comear a
programar. Duas abordagens comuns so: Utilizar um
fluxograma e um psedoucdigo. O fluxograma uma abordagem
grfica para criar o planejamento do seu cdigo.
7/25/2019 Matlab 4-2
4/19
Para programas simples, o pseudocdigo pode ser a
melhor abordagem de planejamento:
Delinear um conjunto de declaraes descrevendo os passos
que voc ir realizar pra resolver o problema;
Converter esses passos em comentrio no M-File;
Inserir o cdigo apropriado no MATLAB em um arquivo entre as
linhas de comentrios.
7/25/2019 Matlab 4-2
5/19
Por exemplo, criar um programa que transforma mph (milhas
por hora) em ft/s (ps por segundo). A sada deve ser uma
tabela, copleta com ttulo e cabealho nas colunas, seguindo os
seguintes passos: Define um vetor mph;
Converter mph em ft/s;
Combinar os vetores mph e ft/s em uma matriz;
Criar um ttulo para a tabela; Criar um cabealho para as colunas;
Exibir a tabela.
7/25/2019 Matlab 4-2
6/19
Primeiro definimos os comentrios:
% Define um vetor mph
% Converter mph em ft/s
% Combinar os vetores mph e ft/s em uma matriz
% Criar um ttulo para a tabela
% Criar um cabealho para as colunas
% Exibir a tabela
7/25/2019 Matlab 4-2
7/19
Entre os comentrios inserir o cdigo apropriado:
% Define um vetor mph
mph = 0:10:100;
% Converter mph em ft/s
fps = mph*5280/3600;
% Combinar os vetores mph e ft/s em uma matriz
table = [mph;fps]
% Criar um ttulo para a tabela
disp('Velocity Conversion Table')% Criar um cabealho para as colunas
disp(' mph f/s')
% Exibir a tabela
fprintf('%8.0f %8.2f \n',table)
7/25/2019 Matlab 4-2
8/19
Um fluxograma combinado com o
pseudogdigo especialmente mais
apropriado para programas mais comlexos.
Voc pode criar uma grande figura do
seu programa graficamente e ento
converter seu projeto num pseudocdigo
adequado para entrar no programa como
comentrios.
7/25/2019 Matlab 4-2
9/19
7/25/2019 Matlab 4-2
10/19
8.3 Funes Lgicas
O MATLAB oferece ambas estruturas tradicionais de
seleo, bem como a famlia de funes if, e uma srie de
funes lgicas que realizam as mesmas tarefas. A primeira
funo lgica a funo find, que pode frequentemente ser
utilizada no lugar de ambas estruturas tradicionais de seleo e
loops.
7/25/2019 Matlab 4-2
11/19
8.3.1 Comandofind
O comando find busca uma matriz e identifica quais
elementos na matriz atendem um dado critrio conhecido. Por
exemplo:
height = [63,67,65,72,69,78,75]
Para obter os elementos cujos valores so maior ou igula a 66:
accept = find(height>=66 )
Resposta: accept = 2 4 5 6 7
7/25/2019 Matlab 4-2
12/19
Esse comando mostra os elementos da matriz que
atendem ao critrio. Se voc deseja saber quais os valores que
atendem o critrio, basta chamar os elementos da matriz, como:
height(accept)
Resposta: ans = 67 72 69 78 75
Uma alternativa para obter o mesmo resultado :
height(find(height(>=66)))
Resposta: ans = 67 72 69 78 75
7/25/2019 Matlab 4-2
13/19
7/25/2019 Matlab 4-2
14/19
7/25/2019 Matlab 4-2
15/19
7/25/2019 Matlab 4-2
16/19
8.4 Estrutura de Seleo
Na maioria das vezes, o comando find deve ser utilizado
ao invs de uma declarao if. Em algumas situaes, portanto, a
declarao if requerida. Esta funo executada caso a
declarao seja verdadeira, caso contrrio pula-se a funo e
executa-se a prxima linha.
7/25/2019 Matlab 4-2
17/19
8.4.1 Comando if
A funo ifpossui a seguinte estrutura:
If comparao
declarao
end
Por exemplo:
G = 40;
if G < 50
disp('G um valor menor ou igual a:')
disp(G);
end
7/25/2019 Matlab 4-2
18/19
Esta funo s vlida para escalares. Caso utilize um
vetor, a funo no executada. Entretanto, possvel executar
cada valor do vetor atravs de um loop(for).
8.4.2 Estrutura if/else
A funo else nos permite executar um conjunto de
declaraes caso a comparao seja verdadeira e um diferente
conjunto caso seja falsa.
7/25/2019 Matlab 4-2
19/19
Por exemplo:
ifx >0
y = log(x)
else
disp('The input to the log function must be positive')end