Você está na página 1de 62

UNIVERSIDADE FEDERAL DO PARÁ

INSTITUTO DE TECNOLOGIA

FACULDADE DE ENGENHARIA CIVIL

INTRODUÇÃO À PROGRAMAÇÃO EM MATLAB

ANTONIO SOBRINHO DE LACERDA MATOS

PROFª. DRª. SALETE SOUZA DE OLIVEIRA


PREFÁCIO
Este material foi desenvolvido para o aluno de programação que esteja
aprendendo algoritmos e que deseja iniciar os estudos de uma linguagem de

programação. O MATLAB ® é uma linguagem de simples utilização, com inúmeros


materiais e tutoriais de fácil acesso. Aqui apresentaremos a interface do programa, suas
principais funcionalidades e diferentes usos, no que tange o contexto da Engenharia
Civil. Apresentaremos os comandos mais usuais, bem como o uso do “editor”, a principal
ferramenta para a criação de funções e programas, onde veremos que serão utilizados
os condicionais (if statements), e os dois principais laços, o laço while e o laço for.
Apresentaremos também alguns exemplos práticos de aplicação do MATLAB em
algoritmos diversos bem como em algumas áreas de estudo do curso de Engenharia
Civil. Para este material, foi utilizada a versão R2015a do MATLAB para Windows.

Este material foi produzido com base no livro, MATLAB com Aplicações em
Engenharia, de Amos Gilat, e no livro de programação computacional com MATLAB
(Computer Programming with MATLAB), desenvolvido na Vanderbilt University para
alunos do primeiro ano de engenharia, que se encontra disponível para compra em
http://cs103.net/buy. Aliado a este livro está o curso de Introdução à programação com
MATLAB, disponível na plataforma Coursera: https://www.coursera.org/#. Alguns
exercícios de algoritmos utilizados neste material foram retirados deste curso. Se você
deseja um curso interativo e relativamente aprofundado desta linguagem,
recomendamos a plataforma Coursera.

Caso haja alguma dúvida, crítica ou sugestão, contate-nos através dos e-mails:

Antonio Sobrinho – antsobrinho2009@hotmail.com

Salete Oliveira - salete@ufpa.br

2
Sumário
1. INICIANDO O MATLAB .......................................................................................................... 4

2. CALCULANDO NA COMMAND WINDOW ............................................................................. 6

2.1 Sintaxe e Semântica: .................................................................................................... 7


2.2 EXEMPLO DE APLICAÇÃO: ............................................................................................ 8
3. OBTENDO AJUDA NO MATLAB........................................................................................... 14

4. O EDITOR E OS ARQUIVOS.m ............................................................................................. 18

5. CRIANDO GRÁFICOS NO MATLAB ...................................................................................... 23

6 MATRIZES E SUAS OPERAÇÕES .......................................................................................... 26

6.1 DECLARANDO VETORES E MATRIZES ......................................................................... 26


6.1.1. DECLARANDO VETORES E MATRIZES A PARTIR DE COMANDOS .......................... 29
6.2 ENTENDENDO AS OPERAÇÕES MATRICIAIS............................................................... 31
6.3 ENCONTRANDO ELEMENTOS DENTRO DE UMA MATRIZ (INDEXAÇÃO) .................. 32
6.4 EXEMPLO DE APLICAÇÃO ........................................................................................... 34
7 OPERADORES LÓGICOS E RELACIONAIS............................................................................. 41

8 SENTENÇAS CONDICIONAIS................................................................................................ 44

9 A SENTENÇA switch-case .................................................................................................... 51

10 LAÇOS (LOOPS) ................................................................................................................... 52

10.1 LAÇO for-end ............................................................................................................... 52


10.2 LAÇO while-end .......................................................................................................... 57
10.3 COMANDOS BREAK E CONTINUE ................................................................................ 61
11 REFERÊNCIAS ...................................................................................................................... 62

3
1. INICIANDO O MATLAB
Ao iniciar o MATLAB em seu computador, irá aparecer o seguinte layout:

A janela marcada em vermelho é a “Current Folder”. Esta janela mostra o diretório atual
do MATLAB, ou seja, se você quiser editar algum script ou função terá que estar gravado
na pasta atual na Current Folder. Caso o usuário deseje alterar a pasta atual, ele deve
clicar no ícone “browse for folder”, localizado bem acima do nome da janela. É
importante ressaltar que o MATLAB só irá reconhecer os arquivos que estiverem
atualmente na Current Folder, ou seja, se você quiser usar uma função (veremos mais a
frente), e esta não estiver na Current Folder, o programa acusará erro.

A janela marcada em verde é a “command window”, ou em português, a janela de


comando. Nela você poderá executar qualquer comando, e ao teclar ENTER, o MATLAB
executará o comando, fornecendo um resultado, ou código de erro. O símbolo >> indica
que o programa está pronto para receber um comando, este símbolo é chamado de
“prompt”. O resultado advindo de um comando qualquer ficará gravado na memória
imediata do programa, que pode ser utilizado enquanto o usuário não o apagar, ou
sobrepor a variável com um valor diferente.

As vezes damos um comando que demanda um alto custo computacional, levando o


MATLAB a se dar como “busy” ou “ocupado”. Outro comando só poderá ser executado

4
assim que o anterior for finalizado, ou então se o usuário interromper o comando em
execução. Para interromper um comando em execução, basta teclarmos CTRL + C. Isto
é muito comum em laços while em que a condição está incorreta, matrizes com índices
muito altos, como veremos mais a frente.

A janela marcada em azul é o “workspace”, esta mostra todas as variáveis gravadas na


memória imediata do programa, com seus respectivos nomes e valores.

Todas estas janelas podem ser alteradas à preferência do usuário, podendo ser variado
o tamanho, a posição, e até mesmo fecha-las.

5
2. CALCULANDO NA COMMAND WINDOW

Antes de partirmos para os cálculos na command window, vejamos os operadores


aritméticos e seus respectivos símbolos:

Símbolo Operação
+ Soma
- Subtração
* Multiplicação
/ Divisão
^ Expoente

Como já foi citado anteriormente, o MATLAB grava em sua memória imediata os


comandos executados na command window. Existem 2 maneiras básicas de se executar
um comando:

1 – Declarando uma variável e atribuindo a esta, um comando. Por exemplo:

Declararemos a variável a e atribuiremos a ela o comando 2 x 2, sendo assim teremos:

>> a = 2*2

>> a =

Neste momento, no workspace, foi gravado o valor 4, para a variável a. Para acessar a
variável novamente, basta digitar a e teclar enter, e o valor será mostrado.

2- Declarando apenas o comando

Declararemos apenas o comando raiz quadrada de 9. O MATLAB então, mostrará:

>> sqrt(9)

ans =

Neste momento, na ausência de uma variável, para o comando não ser perdido, o
MATLAB atribui automaticamente o comando solicitado a uma variável de resposta
(answer) ans. Sendo assim, no workspace, ficou declarado o valor 3 para a variável ans.

6
Caso o usuário volte a executar um comando sem variável, o valor anterior será
substituído pelo novo resultado solicitado.

Caso o usuário tente acessar uma variável que não foi previamente declarada, o MATLAB
mostrará uma mensagem de erro:

Undefined function or variable

Sempre que um comando for declarado, o resultado será mostrado na command


window. Caso o usuário queira suprimir o resultado, desejando apenas que seja alocado
na memória, o comando deve ser finalizado com ponto-e-vírgulas (semicolon). Por
exemplo:

 Sem ponto-e-vírgulas

>> a = 2+4+6

a =

12

 Com ponto-e-vírgulas

>> a = 2+4+6;

>>

2.1 Sintaxe e Semântica:

Ao trabalhar com uma linguagem de programação, devemos, antes de escrevermos


qualquer programa, conhecer a sintaxe e a semântica da linguagem em uso. Existem
algumas regras que devemos seguir, regras essas que são adotadas pelo MATLAB a fim
de construir seus processos de leitura e execução de comandos. Dentre estas regras de
sintaxe e semântica, podemos destacar:

a) A variável deve vir sempre antes da sua atribuição (usualmente o igual = );

>> a = 1; CORRETO

>> 1 = a; ERRO DE SINTAXE

7
O MATLAB não lê o símbolo = como “igual a” mas sim como atribuição, ou seja,
o que temos é: “Atribua o valor à direita do igual à variável a esquerda.

A sintaxe do MATLAB permite que uma variável seja apenas uma letra, ou uma
palavra1, ao contrário de expressões matemáticas, em que constam apenas uma única
letra. Por conta disso, é comum o uso de letras consecutivas, indicando multiplicação.
Entretanto, em programação se faz necessário o uso explícito do indicador de
multiplicação (no nosso caso o símbolo *), entre cada um dos produtos.

Sendo assim, é de extrema importância que fique bem clara a sintaxe da


linguagem a qual se trabalha, para evitar erros que possam vir a comprometer o
desenvolvimento e execução de rotinas e programas.

BOA PRÁTICA DE PROGRAMAÇÃO:


Nunca use uma variável com o mesmo nome de uma função ou comando do
MATLAB. Ao fazer isso, você inutilizará a respectiva função.
Não repita nomes de variáveis ou função. O MATLAB sempre executará a
primeira opção encontrada, inutilizando as seguintes.

(1): Para a versão R2015a do MATLAB, as variáveis podem conter até 63 caracteres, caso o usuário exceda as 63, o
programa ignorará o excedente.

Existem 2 comandos indispensáveis para o usuário do MATLAB, são eles o “clc” e o


“clear”. O primeiro limpa command window, e a deixa em branco, da mesma forma de
quando iniciado o MATLAB, porém os dados gravados no workspace permanecem,
podendo ser acessados normalmente pelo usuário. Já o comando clear, faz o contrário:
ele limpa os dados do workspace sem limpar a tela da command window, sendo assim,
todas as variáveis, matrizes ali gravadas são apagadas.

2.2 EXEMPLO DE APLICAÇÃO:

Neste exemplo utilizaremos a janela de comando do MATLAB para calcular a ordenada


Xc do centroide da figura abaixo. Ao longo do desenvolvimento do exemplo iremos
inserir alguns conceitos do uso da command window

8
Para calcular o que está sendo pedido, devemos antes conhecer os passos que devemos
seguir para sair dos dados de início do problema até a resposta final. Esta é a base de
toda a programação, executar tarefas ou comandos em uma ordem tal, que saiamos da
origem ao fim de um determinado problema. No nosso caso, partiremos de uma figura
irregular, em que desejamos determinar a ordenada do centroide.

Para determinar o centroide de uma figura irregular, deve-se partir do centroide de


subfiguras regulares, através da seguinte formulação:

∑ 𝐴𝑖 ∙ 𝑋𝑖
𝑋𝐺 =
∑ 𝐴𝑖
Onde XG é o a ordenada do centroide da figura irregular

Ai são as áreas das subfiguras regulares

Xi são as ordenadas dos centroides das subfiguras regulares

Dividindo a figura em subfiguras regulares, temos:

9
Calcularemos as áreas e ordenadas de cada subfigura:

𝑏 ∙ ℎ (40𝑐𝑚 + 40𝑐𝑚) ∙ 40𝑐𝑚


𝐴1 = 𝐴2 = 𝐴3 = = = 1600𝑐𝑚²
2 2

E calcularemos também a ordenada do centroide de cada uma das subfiguras, utilizando


como origem a aresta inferior esquerda da figura.

No MATLAB, iremos atribuir o valor de (40+40) para a variável b e 40 para a variável h.


Atribuiremos, também, à área A1 o valor de b*h/2.

Sabendo que todas as áreas são iguais, atribuiremos o valor de A1 para as variáveis A2
e A3. Logo:

10
Concluídas as áreas, partiremos para as ordenadas do centroide dos triângulos. Para
isso, temos as seguintes formulações:

Para a área A1, teremos:

ℎ 40𝑐𝑚
𝑋𝐴1 = = = 13,33𝑐𝑚
3 3

Para a área A2, teremos:

11
𝑏 80𝑐𝑚
𝑋𝐴2 = = = 40𝑐𝑚
2 2

Para a área A3, teremos:

ℎ 40𝑐𝑚
𝑋𝐴3 = (80𝑐𝑚 − ) = (80𝑐𝑚 − ) = 66,66𝑐𝑚
3 3

Aplicando no MATLAB, faremos as atribuições acima nas varáveis XA1, XA2 e XA3.

Agora que já temos todas as variáveis do problema, podemos encontrar a ordenada do


centroide da figura (XG). Sendo assim, relembrando que XG é:

∑ 𝐴𝑖 ∙ 𝑋𝑖
𝑋𝐺 =
∑ 𝐴𝑖
O procedimento de cálculo se dá através da soma dos produtos entre as subáreas e as
respectivas ordenadas: 𝑋𝐴1 ∙ 𝐴1 + 𝑋𝐴2 ∙ 𝐴2 + 𝑋𝐴3 ∙ 𝐴3 e sua posterior divisão pela soma
das áreas A1, A2 e A3

12
Logo, teremos:

𝑋𝐴1 ∙ 𝐴1 + 𝑋𝐴2 ∙ 𝐴2 + 𝑋𝐴3 ∙ 𝐴3


𝑋𝐺 =
𝐴1 + 𝐴2 + 𝐴3

No MATLAB, podemos fazer este último passo de duas maneiras: Podemos criar duas
outras variáveis, sendo elas a soma dos produtos área x ordenada e a soma das áreas,
ou somente atribuir à variável XG a razão da soma dos produtos sobre a soma das áreas,
como descrito acima. Faremos da primeira maneira. É recomendável que você tente
fazer da segunda maneira como exercício. Porém, atenção quanto à sintaxe do
MATLAB, não esquecendo os parênteses para respeitar as precedências de operações
(potência>multiplicação e divisão> soma e subtração).

SITUAÇÃO 1:

Como esperado, obtivemos como resultado da ordenada o valor de 40cm, uma vez que
é uma figura simétrica em relação à base.

13
3. OBTENDO AJUDA NO MATLAB

O MATLAB é uma ferramenta excepcional. Executa cálculos de diversas origens, nele


você pode criar uma infinidade de programas com as mais diversas aplicações. Mas para
tal, você precisa conhecer tudo aquilo que ele tem para lhe oferecer, sejam os
comandos, as “built-in-functions”, entre outras ferramentas. Sendo o acervo de
comandos e funções do MATLAB tão extenso, você precisa saber como buscar
informação sobre tais ferramentas. E é isto que abordaremos neste tópico.

Existem várias formas de buscar informação sobre o MATLAB. Você pode ir ao google e
lá efetuar sua pesquisa. Certamente haverá alguém que já procurou o mesmo comando
que você. Entretanto, você pode já conhecer um determinado comando, mas não saber
como ele funciona. E para isso o próprio MATLAB lhe ajuda, sem precisar de conexão
com a internet. Ele dispõe de um “helper” muito eficiente, porém está em inglês, assim
como todo o MATLAB. Mostraremos a seguir como obter ajuda no próprio programa.

Digamos que você queira tirar a raiz quadrada de um número, ou vetor. Uma das
funções mais comuns é a sqrt em inglês, “square root”. Consideraremos que você
conhece este comando, mas não sabe como ele funciona, a que limites de operadores
está restrito. Na própria Command Window você irá digitar a palavra “help” dar um
espaço e digitar o comando a ser pesquisado, da seguinte maneira:

>> help sqrt

Após apertar ENTER, o programa mostrará logo em baixo a descrição do comando, para
que é indicado e a sua sintaxe. Mostrará também uma página de referência com
exemplos usando a função pesquisada. Mostrará, também, comados similares que você
possa vir a usar. Aparecerá o seguinte:

14
Outra forma de pesquisa é seguir direto para a página de referência, onde se encontram
os exemplos e as funções similares. Para isso você terá que digitar a palavra “doc” dar
um espaço e digitar o comando a ser pesquisado.

Assim que digitar ENTER, será aberta a janela de referência com a descrição completa
do comando, da seguinte maneira:

15
Agora, partiremos do pressuposto que você não conhece o comando. Analogamente ao
“help”, existe o “lookfor”, onde o MATLAB irá procurar os comandos que contenham a
palavra chave que você esteja procurando. Mas ATENÇÃO: O MATLAB procura apenas
uma PALAVRA. Não use frases, ou palavras compostas.

No nosso caso, a palavra chave será “root” e não “square root”. Sendo assim, no
MATLAB:

Percebemos que o programa nos retornou todos os comandos e funções que


contenham “root” e sua breve descrição. E dentre eles, o nosso comando sqrt.

Outra maneira de pesquisar um comando ou função, é usando o google para ser


redirecionado para o site da Mathworks, desenvolvedora do MATLAB. Lá você
encontrará fóruns, discussões e ajudas em geral sobre o uso do MATLAB e seus recursos
adicionais. Para tal, você precisa digitar a seguinte pesquisa “how do i (ação a ser
executada) on MATLAB”. Por exemplo, para o nosso caso teríamos: “how do i get the
square root on MATLAB”.

16
No google aparecerá:

Selecionando a primeira opção:

Estas são as formas mais práticas de obter ajuda com os próprios recursos do MATLAB.
A partir disso você poderá ter acesso a todos os recursos disponíveis desta ferramenta.

17
4. O EDITOR E OS ARQUIVOS.m

Agora que você já tem uma noção de como funciona o MATLAB e como trabalhar com
ele, você já está apto a escrever programas e funções simples. Para tal, utilizaremos o
recurso do MATLAB chamado “editor”. É no editor que serão escritos os programas e as
funções, que poderão ser executadas ou atribuídas na command window. Neste tópico
a metodologia se dará através de um exemplo prático. Construiremos um programa
simples onde o passo a passo será detalhado. Ao final, deixaremos um exemplo de
aplicação onde você terá que escrever o programa que faça o que for solicitado, e gere
os resultados esperados.

Esse é o layout do editor. Aqui você é livre para escrever qualquer função ou programa.
O MATLAB trabalha basicamente com funções. Ou seja, o seu programa vai ser
composto de uma ou mais funções, feitas por você.

Para iniciarmos a entender o editor, vamos escrever um programa que nos retorna a
área e o perímetro de uma circunferência (output), a partir do raio (input).

Para isso, precisamos saber como se calcula o raio e o perímetro de uma circunferência.

Para a área (A), temos: 𝐴 = 𝜋𝑟 2 , onde r é o raio da circunferência.

Para o perímetro (P), temos: 𝑃 = 2𝜋𝑟

18
Sendo assim, no MATLAB, iniciaremos abrindo o editor. Você pode usar a command
window, digitando o comando “edit” mais um espaço e em seguida o nome que ficará
salvo o seu programa. Ao fazer isso, o MATLAB automaticamente cria um arquivo .m na
pasta atual (current folder), como na imagem abaixo:

Podemos, também, abrir o editor clicando em “new script”, porém você terá que salvar
manualmente o seu arquivo.

Uma boa prática de programação é sempre comentar o seu programa, para que você
sempre lembre o que cada variável significa, quais as unidades em que estão, etc. Para
comentar no editor, você precisa adicionar o símbolo de porcentagem (%) no início do
comentário, todo texto em verde é comentário, logo o MATLAB não o considera na hora
de executar o programa. Iniciaremos comentando a finalidade do programa, o
cabeçalho, e as instruções de uso.

19
Agora iniciaremos a escrever os algoritmos do programa.

Para iniciar um programa, devemos dar o comando “function”, em seguida escrever os


outputs, dar o igual(=), escrever o nome da função (recomendável que seja o mesmo
nome do arquivo) e, entre parênteses, escrever os inputs, como mostrado abaixo:

Para o nosso caso, colocamos os outputs entre colchetes, porque temos mais de um
elemento de saída, logo precisamos que os dois resultados saiam juntos. Seguiremos
com a construção do programa, atribuindo aos outputs os seus respectivos valores.

Assim que forem finalizados os algoritmos, devemos dar o comando “end”, indicando
que a função chegou ao fim. Feito isso, estamos prontos para rodar o programa.
Podemos fazer isso de duas formas: Podemos escrever a função na command window,

20
e ali atribuir às variáveis desejadas, ou executar no próprio editor, apenas clicando no
botão “run”. Para a segunda opção, devemos determinar os valores dos inputs dentro
da função, o que não é recomendável. UMA BOA PRÁTICA DE PROGRAMAÇÃO, PARA
ESTE CASO, É CRIAR UMA FUNÇÃO SÓ PARA EXECUTAR O PROGRAMA.

Na primeira opção, temos no MATLAB:

Para r = 4

Na segunda opção, temos no MATLAB:

Para r = 4

Criaremos um arquivo separado com o nome executavel. E nele colocaremos os inputs


e então executaremos.

21
Como podemos ver acima, temos:

 O input (r)
 A linha chamando a função do nosso programa
 A função “fprintf”, que retorna na command window os resultados obtidos no
editor. Esse comando funciona da seguinte maneira: fprintf (‘texto’,variável(1),
variável(2), até a variável(n) ) onde, dentro do texto devemos inserir o símbolo
de porcentagem (%), que diz ao programa que o valor de uma variável deve ser
retornado. O número ao lado do % indica o número de casas decimais após a
vírgula, para o formato escolhido (f), no nosso caso utilizamos a letra f, que indica
que é uma notação de ponto fixo. Para cada variável que se deseja retornar,
deve-se utilizar o símbolo %, a notação e a formatação desejadas. Para saber
mais sobre esta função, use o doc fprintf na command window, e se você deseja
conhecer os tipos de formatação das variáveis, pesquise formatting strings.

22
5. CRIANDO GRÁFICOS NO MATLAB

Além de ser uma ferramenta muito útil para programação, o MATLAB dispõe de uma
interface muito simples para criação de gráficos. Nele podemos criar gráficos 2D e 3D.
O MATLAB trabalha em sua essência com matrizes. Um escalar, por exemplo, nada mais
é do que uma matriz 1x1. Para gerar um gráfico 2D, temos duas formas comuns de
captação de dados: como matriz e como vetor. O comando a ser utilizado é o “plot”, e
sua sintaxe é: plot(X,Y), onde X e Y são matrizes ou vetores, e plot(Y), onde Y é uma
matriz ou vetor. Quando usamos X e Y como matrizes, elas devem ter o mesmo tamanho
(ix=iy e jx=jy). O MATLAB irá plotar as colunas de X versus colunas de Y (situação a), e no
caso de vetores, irá plotar o vetor X versus o vetor Y.

Situação a:

Sejam X e Y matrizes 3x3. Sendo:

O MATLAB irá plotar os pontos: (1,2), (-4,8), (7,14) da primeira coluna. E fará isso
novamente para as colunas restantes, ou seja, os pares ordenados a serem plotados são
os mesmos elementos de cada matriz (X1,1 , Y1,1) , (X2,1 , Y2,1), até (Xn,n , Yn,n). Executando
o comando plot(X,Y) no MATLAB, teremos:

23
Cada coluna será plotada automaticamente com uma cor diferente. É possível que o
usuário escolha sua formatação de linha, cor, espessura, formas sobre os pontos, etc.
Para mais informações sobre como formatar o comando plot, pesquise doc plot na
command window.

Situação b:

Sejam X e Y dois vetores de mesmo tamanho. Não importando se são vetores linha ou
coluna.

A forma mais simples de criação de gráficos 2D é a partir de vetores. Cada elemento do


vetor X é associado ao seu respectivo elemento no vetor Y, e assim até o último
elemento. Sendo assim, utilizando o comando plot(X,Y), teremos:

24
É possível, também, acrescentar mais de uma linha em uma mesma figura. Basta
executarmos o plot com todos os argumentos de uma só vez. Digamos que temos 2
pares de vetores, o par A e B e o par C e D. Para plotarmos AxB e CxD, devemos fazer:

>> plot(A,B,C,D)

>>

Tente você mesmo. Crie 2 ou mais pares de vetores e tente plotar. Caso não consiga, ou
apresente dificuldade, utilize o comando doc plot na command window para mais
informações sobre este e outros comandos de plotagem gráfica.

25
6 MATRIZES E SUAS OPERAÇÕES

Matrizes são, de uma maneira simplificada, tabelas com m linhas e n colunas. Para
iniciarmos nosso estudo sobre matrizes vamos aprender a declará-las no MATLAB.
Iniciaremos com os vetores, que são matrizes de apenas uma dimensão.

6.1 DECLARANDO VETORES E MATRIZES

A notação de matriz/vetor no MATLAB se dá através de colchetes. O conjunto de


elementos que esteja entre colchetes, é lido pelo MATLAB como uma matriz. Por
exemplo, declararemos um vetor da seguinte maneira:

>> A = [ 1 2 3 4 5]

>> A =

1 2 3 4 5

>>

Sendo assim, criamos um vetor linha de 5 elementos ao colocarmos entre colchetes (os
colchetes definem o início e o fim de uma matriz/vetor) os elementos 1, 2, 3, 4 e 5
separados por espaços. Caso você prefira, pode separar os elementos de uma mesma
linha em uma matriz ou vetor por vírgulas. O resultado será o mesmo. Mas lembre-se
de separar os elementos, caso contrário o MATLAB irá interpretar como apenas um
número.

Agora, vamos criar um vetor coluna, com os mesmos elementos. Para tal, temos que
discriminar para o MATLAB o fim de uma linha e o início de outra. Para isso usamos o
ponto-e-vírgula (;), da seguinte maneira:

26
>> B = [1 ; 2 ; 3 ; 4 ; 5]

Como podemos ver, o MATLAB retornou um vetor coluna de 5 elementos.

Agora que já sabemos como declarar vetores, fica fácil deduzir como declarar uma
matriz de mais de uma dimensão. Declaremos então uma matriz M de 3 linhas e 2
colunas (3x2):

>> M = [1 2; 3 4; 5 6]

E mais uma vez o MATLAB nos retornou exatamente aquilo que queríamos. Agora você
já sabe como declarar uma matriz no MATLAB.

Imaginemos agora que você trabalha com alguma área que envolva matrizes, mas
precisa escrever matrizes muito grandes, da ordem de 100 ou 1000 linhas. Como você
procederá? Será que temos que digitar todos os elementos das matrizes?

Para nossa alegria, o MATLAB dispõe de uma ferramenta importantíssima. É o chamado


“colon operator”, ou em português, o operador dois-pontos (:). Com ele, nós somos
capazes de dizer ao MATLAB: - “ei, faça um vetor linha que vai de 1 até 1000 “. Então
vamos ver como proceder.

27
Digamos que você quer escrever um vetor que represente o número de passos que você
dá ao sair da escola para sua casa. Vamos considerar que você dê 1 passo por segundo,
e demora 15 minutos para chegar em casa. Lembre-se que você quer representar todos
os seus passos em um vetor.

Se você dá 1 passo por segundo e você percorre um trajeto em 15 minutos,


considerando que 15 minutos possuem 15x60segundos, nós teremos 900 segundos. Ou
seja, você dá 900 passos para sair da escola para casa. Agora vamos representar no
MATLAB. Iremos proceder da seguinte maneira:

>> n_passos = [ 1 : 1 : 900]

São tantos elementos que nem cabem na tela. Experimente executar esse comando no
seu MATLAB e role a command window até o final. Você perceberá que temos um vetor
linha que vai de 1 até 900.

Vamos entender o que significa cada elemento do comando:

>> n_passos = [ 1 : 1 : 900]


1. Elemento inicial do vetor
2. Incremento
3. Elemento final
28
Observação ¹: O uso do colchete para vetores criados com o dois-pontos (:) é
opcional. O MATLAB automaticamente reconhecerá como um vetor, uma sequência
de números

Observação ²: O uso do número 1 no incremento também é opcional. O MATLAB


automaticamente considera como 1 quando o incremento é suprimido. Nesse caso a
sintaxe seria, para um vetor v :

>> v = elemento inicial : elemento final

O incremento pode assumir qualquer valor real.

Essa ferramenta também pode ser utilizada em linhas ou colunas para criação de
matrizes, desde que cada linha ou coluna contenham o mesmo número de elementos,
condição para que seja, de fato, uma matriz. Tente no MATLAB o comando abaixo e veja
o que acontece.

>> M = [ 0 : 2 : 8; 1 : 5; 10 : -5/2 : 0]

6.1 .1. DECLARANDO VETORES E MATRIZES A PARTIR DE COMANDOS

Existem 3 comandos importantes de declaração de matrizes. São eles o comando


“zeros”, “ones” e “eye”.

 O comando zeros (m,n) ou zeros (n):

Cria uma matriz de m linhas e n colunas, contendo apenas zeros como elementos.
Quando declarado apenas o n, o comando cria uma matriz quadrada de n linhas e n
colunas.

 O comando ones (m,n) ou ones (n):

É muito parecido com o comando anterior, diferindo apenas nos elementos, que ao
invés de zeros, são todos o número um.

 O comando eye (m,n) ou eye (n):

29
Parte do mesmo princípio dos comandos anteriores, entretanto é criada uma matriz
identidade de m linhas e n colunas ou n linhas e n colunas, onde a diagonal principal é
composta por 1 e o restante da matriz é composta por 0.

 O comando rand (m,n) ou rand (n):

Este comando cria uma matriz pseudo-aleatória (não apresentam uma ordem, porém
seguem uma sequência) de m linhas e n colunas ou n linhas e n colunas, com elementos
entre 0 e 1.

 O comando randi (imax,n) ou rand (imax,m,n):

Este comando cria uma matriz aleatória de m linhas e n colunas ou n linhas e n colunas,
com elementos entre 1 e imax.

Todos os comandos anteriores, quando executados sem nenhum index, retornam um


escalar conforme a descrição do comando executado.

30
6.2 ENTENDENDO AS OPERAÇÕES MATRICIAIS

Agora que você sabe como criar uma matriz, veremos como fazer operações com elas.
Análogo às operações com os escalares (item 2), são as operações matriciais. Exceto a
multiplicação, divisão e potência escalar. Portanto:

fonte: Matsumoto (2012)

Veremos mais à frente algumas aplicações e usos das operações com matrizes dentro
dos exemplos de funções e algoritmos que mais tarde exercitaremos.

31
6.3 ENCONTRANDO ELEMENTOS DENTRO DE UMA MATRIZ
(INDEXAÇÃO)

Agora vamos aprender como acessar os elementos de matrizes e vetores, através da


indexação.

Para tal, você deve saber acessar um elemento matricial matematicamente. É bem
simples. Sendo a matriz uma tabela, basta que tenhamos as “coordenadas” i da linha e
j da coluna. Assim acessaremos o elemento aij, de uma matriz qualquer. Vamos ao
MATLAB...

Sendo M uma matriz 4x3:

>> M = [ 1 3 5; 7 9 1; 2 4 6; 1 2 3];

Vamos acessar o elemento que se encontra na 2ª linha e na 3ª coluna. Para isso


precisamos declarar a matriz onde se encontra o elemento, e sua respectiva
“coordenada”, entre parênteses. Da seguinte forma:

>> M(2,3)

>>

Logo, no MATLAB, teremos:

Podemos atribuir este valor à variáveis, assim como o MATLAB atribuiu à variável “ans”.

Caso estejamos trabalhando com um vetor, uma vez que possui apenas uma linha ou
coluna, podemos acessar o elemento da seguinte maneira:

 Se for um vetor linha, basta indicar o número da coluna, já se for um vetor


coluna, basta indicar o número da linha:

32
Seja o vetor v = 1:12 . Para acessar o 7º elemento, basta que façamos:

>> v(12)

ans =

12

Obs: Esta notação acima também pode ser usada em matrizes, porém a ordem se dará
do primeiro elemento sendo o elemento (1,1), indo de cima para baixo e da esquerda
para a direita.

Podemos também acessar mais de um elemento de uma mesma linha ou coluna, ao


mesmo tempo. Basta que especifiquemos a linha ou coluna do conjunto de elementos,
e entre colchetes as colunas ou linhas em que se encontram os elementos
individualmente. Utilizemos ainda a matriz M como exemplo. Para acessarmos os 1º e
3º elementos da linha 3, devemos:

>> M(3, [1,3])

ans =

2 6

Existe no MATLAB o operador “end”, que indica fim de intervalo, ou seja, você pode
indicar o último índex de uma matriz apenas com este operador. Digamos que você
queira atribuir a uma variável o valor do último elemento de uma matriz de 10.000 linhas
e 10.000 colunas. Você não precisa digitar (10000,10000). Basta atribuir a indexação
(end,end).

O MATLAB nos permite, também, que acessemos a informações importantes referentes


as matrizes nele geradas, tais como tamanho da matriz, número de elementos, etc. Para

33
acessarmos estas informações, basta que usemos o comando size(M) e numel(M), onde
M é uma matriz qualquer. O primeiro comando retorna um vetor linha com 2 elementos,
o primeiro é o número de linhas e o segundo é o número de colunas da matriz M. O
segundo comando nos retorna um escalar, que representa o número de elementos da
matriz M.

Agora tente você, acessar os seguintes elementos:

 1º elemento da 4ª linha
 3º elemento da 1ª linha
 2º e 3º elemento da 4ª linha
 1º e 2º elemento da 2ª coluna
 Todos os elementos da 3ª linha
 Vamos ver se você aprendeu a pesquisar os comandos e ferramentas do
MATLAB. Tente acessar uma linha ou coluna inteira sem precisar declarar cada
elemento da mesma. Existem 2 maneiras, ambas usando o dois-pontos (:).
6.4 EXEMPLO DE APLICAÇÃO

Neste exemplo vamos utilizar os tópicos comentados nos itens anteriores, bem como
explorar a criação de funções/scripts/programas no MATLAB. Estamos caminhando aos
poucos nas habilidades necessárias para construir um programa. Já vimos como fazer
operações aritméticas, já aprendemos a definir vetores e matrizes, e agora através do
exemplo, vamos fazer operações com as mesmas.

Enunciado: Escreva um programa que leva como argumentos de entrada dois números
inteiros positivos (n e m) nessa ordem. O programa retorna Q, uma matriz 2n por 2m.
Q consiste em quatro submatrizes n x m. Os elementos da submatrizes no canto
superior esquerdo são todos os 0, os elementos da submatriz no canto superior direito
são 1, os elementos na parte inferior esquerda são 2 e os elementos no canto inferior
direito são 3.

Uma das operações matriciais muito comuns em programação é criação de submatrizes.


DICA¹: Esse é o caminho que devemos tomar para escrever o programa. Volte ao

34
enunciado e pense no que fazer para escrever o programa, caso não consiga, siga para
a próxima dica.

Para iniciar o programa, lembre-se: NO MATLAB A MAIORIA DOS PROGRAMAS SÃO


CONJUNTOS DE FUNÇÕES, NO NOSSO CASO SERÁ APENAS UMA FUNÇÃO.

Para relembrar a sintaxe de uma função no editor, retorne ao item 04 e dê uma olhada
no exemplo da área e perímetro da circunferência.

|
|

Dica²: Utilizaremos apenas os comandos zeros e ones. Retorne mais uma vez ao
enunciado e tente novamente escrever o programa.

|
|

35
|

Dica³: Utilizaremos os comandos zeros e ones para formar uma matriz. Fique atento na
ordem especificada no enunciado para cada quadrante da matriz. Na próxima página
revelaremos a solução do exemplo.

|
|

36
|

O código do programa no MATLAB é:

function Q = Matriz_4_quadrantes (m,n)

Q = [ zeros (m,n) ones(m,n) ; 2*ones(m,n) 3*ones(m,n)];

end

Aqui vai mais um enunciado de um programa:

Escreva um programa que leva uma matriz N como entrada e retorna a matriz S como
a saída. S tem o mesmo número de linhas que N. Cada elemento da primeira coluna
de S contém a média da linha correspondente de N. Da mesma forma, a segunda
coluna contém os valores médios; enquanto a terceira coluna tem os mínimos.
Finalmente, cada elemento da quarta coluna de S é igual ao valor máximo de uma
linha dada de N. (Dica: Lembre-se, pedir ajuda é indispensável).

37
|

DICA¹: Pesquise no google: how do i find the mean element on a array on matlab e abra
o primeiro link. A partir dessa pesquisa você deve pesquisar o que falta.

38
|

DICA²: Organize cada coluna obtida com a dica anterior dentro de colchetes para formar
a matriz S.

39
|

O código do programa é:

function S = simple_stats(N)
[a,b] = size(N);
S = [mean(N,2) median(N,2) min(N,[],2) max(N,[],2)];
end

40
7 OPERADORES LÓGICOS E RELACIONAIS

Um operador relacional compara dois números, determinando se o resultado é


verdadeiro ou falso. O MATLAB retorna como verdadeiro o valor 1 e como falso o valor
0. Um operador lógico examina sentenças verdadeiras ou falsas e produz um resultado
verdadeiro ou falso. Confuso? Vamos entender como isso funciona. Primeiro vamos
mostrar os operadores lógicos e relacionais.

Operador Relacional Descrição


< Menor que
> Maior que
<= Menor que ou igual a
>= Maior que ou igual a
== Igual a
~= Diferente

 Se dois escalares são comparados, o resultado será 1 ou 0 (verdadeiro ou falso).


 Se duas matrizes são comparadas, a comparação é feita elemento por elemento
(sendo assim, as matrizes devem ter as mesmas dimensões), e o resultado é uma
matriz lógica de 0 ou 1 conforme as comparações serem verdadeiras ou falsas.
 Se um escalar é comparado a uma matriz, o mesmo será comparado com cada
elemento da matriz, e o resultado é uma matriz lógica de 0 ou 1 conforme cada
comparação.

Exemplos:

41
Operador Lógico Nome Descrição

Age em dois operandos (A,B). Se ambos forem verdadeiros, o


& e/and
resultado será (1). De outro modo, será 0

Age em dois operandos (A,B). Se um dos operandos for


| ou/or verdadeiro, ou se ambos forem verdadeiros, o resultado será
(1). De outro modo (ambos falsos), o resultado será falso

Age em um operando(A). É a negação do operando:


~ não/not verdadeiro(1) se o operando for falso, e falso(0) se o
operando for verdadeiro

 Operadores lógicos recebem números como operandos. Qualquer número


diferente de zero é verdadeiro e apenas o zero é falso.
 Analogamente os operadores relacionais, os operadores lógicos podem atuar
tanto em escalares como em matrizes.

Exemplos:

42
Para você não cometer erros de precedência na hora de escrever os seus programas,
aqui vai a tabela de precedência com os operadores. E não se esqueça, não tenha pena
de parênteses. É melhor um programa cheio de parênteses, porém correto, do que um
programa limpo, mas com equações erradas.

PRECEDÊNCIA OPERAÇÃO
1 (mais alta) Parênteses (se houver mais de um, os
mais internos tem prioridade.)
2 Exponenciação
3 NOT (~)
4 Multiplicação e divisão
5 Adição e Subtração
6 Operadores Relacionais
7 AND (&)
8 (mais baixa) OR (|)

43
8 SENTENÇAS CONDICIONAIS

Sentenças condicionais são estruturas que permitem ao MATLAB tomar decisões e


escolher executar uma série de comandos atrelados a esta sentença, ou desviar para o
fim ou para outra sentença. No MATLAB esta sentença e definida pelo comando if.

A sentença if possui geralmente 3 estruturas:

 If – end
 If – else – end
 If – elseif – else –end

 IF – END

if

F
A
L Verdadeiro
S
O
Grupo de comandos

fim

44
EXEMPLO USANDO A SENTENÇA IF-END:

Um trabalhador é pago de acordo com a jornada semanal de 40 horas, mais 50% sobre
as horas extras trabalhadas. Escreva um programa que calcule o salário do
trabalhador. O programa deve solicitar ao usuário a quantidade de horas trabalhadas
e o valor pago pela hora trabalhada. Por último, o programa deve retornar o salário.

Para executar esse programa, precisaremos do comando “input”, já que o enunciado


nos solicita que o programa deve solicitar ao usuário. Pesquise no MATLAB usando o
comando “doc”, a sintaxe e o funcionamento do comando “input”. Primeiramente
vamos entender a situação a que o programa se refere:

O objetivo é calcular o salário do trabalhador, porém em duas situações: sem hora extra
e com hora extra. Esta é a condição que temos que informar ao MATLAB. Qual condição
confere hora extra? Vejamos, a jornada semanal é de 40h, caso extrapole este
montante, é considerado hora extra. Ou seja, os valores de horas acima de 40 são
contados como hora extra, logo terá um acréscimo de 50% para cada hora que
extrapolar 40. Sendo assim, vamos ao programa.

 Passo 1: Descrição do programa, solicitação dos dados ao usuário e cálculo da


condição geral: horas trabalhadas * valor
 Passo 2: Montagem da condição e comando dentro da condição : if horas
trabalhadas > 40 , então salario = salario + hora_extra;
 Passo 3: comando fprintf para mostrar ao usuário o valor do salário.

Tente escrever este programa sozinho. A resposta estará na página seguinte.

45
 Programa que calcula o salário do trabalhador:

 IF – ELSE -END

if
FALSO

Verdadeiro

Grupo de comandos 2 Grupo de Comandos

fim

46
 IF – ELSEIF-ELSE-END

if
FALSO

ELSEIF Verdadeiro
FALSO

Grupo de Comandos

Grupo de comandos 2

Grupo de comandos 3

fim

EXEMPLO USANDO A SENTENÇA IF-ELSEIF-ELSE-END :

 Volume de Caixa-dágua:

Exemplo extraído de GILAT


(2012)

BÓIA
BÓIA O tanque de caixa-dágua
possui geometria
mostrada na figura ao
lado. A parte de baixo é um
cilindro e a parte de cima é
um tronco de cone
invertido. Dentro do
tanque há uma boia que
indica o nível de água. Escreva um programa que determine o volume d’água
armazenado no tanque a partir da posição indicada pela boia. O programa deve
receber a variável h (altura da boia), em metros e retornar o volume de água em m³.

47
As sentenças if- elseif possuem entre si um grupo de comandos a serem executados
dentro da condição presente no if. Assim como entre elseif – elseif possuem outros
grupos de comandos a serem executados a partir da condição presente no elseif, entre
o elseif e o else a mesma coisa, já entre o else e o end, estão o grupo de comandos que
serão executados caso nenhuma das condições anteriores tenha sido encontrada.

Para a solução do nosso exemplo, temos que analisar as possibilidades, logo as


condições possíveis. Visivelmente temos 4 condições relacionadas à variável em questão
(h).:

 1ª condição: h>0

A condição básica é que h>0 para que haja volume na caixa-dágua. Para esse caso
colocaremos um código de erro alertando o usuário que o valor inserido deve ser maior
que zero

 2ª condição: h<33m

Análogo à situação anterior, colocaremos outro código de erro que alerte o usuário que
a altura não pode ser superior a 33m.

 3ª condição: 0 ≤ h ≤ 19m

Condição de cálculo do volume de água na caixa-dágua. Até 19m o cálculo é feito através
do volume do cilindro, a partir daí o cálculo se da através do cilindro+tronco de cone.

 4ª condição: 19m ≤ h ≤ 33m

Como já dito, nesta condição de altura, o cálculo do volume deve der feito com o volume
do cilindro + o tronco de cone em função do raio variável em relação à altura.

Sabendo que o volume da parte cilíndrica é: 𝑉𝑐=ℎ.(𝜋.𝑟²)

E o volume da parte do tronco de cone é:

48
Tente escrever o programa com base nas condições e formulações. A resposta estará na
próxima página.

49
RESPOSTA DO PROGRAMA DA CAIXA-D’ÁGUA:

50
9 A SENTENÇA switch-case

Esta é uma sentença bem simples. Ele seleciona um grupo de comandos dependendo
do caso solicitado. É feito através da combinação. A entrada é analisada em relação aos
cases presentes na sentença, quando der uma correlação, o grupo de comandos é
executado. Associado aos case, pode vir o comando otherwise, é análogo ao else.
Quando em nenhum case é encontrada coincidência, a sequência de comandos entre o
otherwise e o end são executados.

Exemplo:

Escreva um programa que converta uma quantidade de energia ou trabalho escrita em


Joule, ft-lb, cal ou eV nas quantidades de energia equivalentes nas demais unidades
especificadas pelo usuário. O programa deve solicitar ao usuário que entre com a
quantidade de energia, a unidade atual e a nova unidade. A saída é a quantidade de
energia na nova unidade.
Fatores de conversão: 1J = 0,738 ft-lb = 0,239 cal = 6,24 x 1018 eV
AGORA É COM VOCÊ. TENTE ESCREVER O PROGRAMA, A RESPOSTA ESTÁ NO LIVRO:
MATLAB COM APLICAÇÕES EM ENGENHARIA, DE AMOS GILAT, PAG. 189.

51
10 LAÇOS (LOOPS)

O laço é um outro método de alteração do fluxo de um programa. Está baseada na


repetição. Cada sequência de execução é denominada passo. Existem dois tipos de
laços: o laço for-end e o laço while-end. No laço for-end o número de passos (repetições)
é conhecido, e o grupo de comandos é repetido conforme o número de passos definido.
Já no laço while-end, não se conhece o número de passos, define-se apenas uma
condição à uma variável, e enquanto esta condição for verdadeira, o laço permanece
em execução, assim que a condição não for mais verdadeira, o laço é finalizado (end).

10.1 LAÇO for-end

Como já foi dito, este laço tem número de passos definido. É definido também o valor
inicial, o incremento e o valor final. A sintaxe é similar à declaração de vetores, vejamos
abaixo como funciona este laço.

for i = a:b:c

comando 1
comando 2
.
.
.
comando n
end

 Índice do loop
 Valor de i no primeiro passo
 Incremento em i após cada passo
 Valor de i no último passo

A estrutura do laço se dá, primeiramente, por i = a , em seguida os comandos entre o


for e o end são executados. Em seguida, o valor de i se torna a+b, e os comandos são
executados novamente. Depois k = (a+b)+b, em seguida k=(a+b+b)+b, até o valor de k=c.

52
Caso o incremento seja tal que o valor de k supere o valor de c, o penúltimo valor é
assumido, mesmo que seja inferior a c, da mesma forma que a atribuição de
vetores/matrizes pelo operador dois-pontos (:).
 O incremento b pode ser um valor negativo
 Se o incremento for omitido, o MATLAB automaticamente atribuirá valor 1 para
o mesmo
 Se a>c e b> 0 ou a<c e b<0, o laço não é executado
 É possível atribuir valores específicos para i, por exemplo i = [ 2 5 -6 8]
 O valor de i não deve ser redefinido dentro do laço
 Cada comando for deve estar alinhado com um comando end.

Um exemplo simples do laço é:

for i = 1:2:10
x(i) = 2^(1+i)
end

53
EXEMPLO DESAFIO:
Escreva um programa que plote o gráfico do diagrama de momento fletor de
uma viga que pode ser submetida a carregamento distribuído retangular, carga
concentrada (apenas uma carga), ou as duas simultaneamente.

O CÓDIGO DO PROGRAMA ESTARÁ NA PRÓXIMA PÁGINA.

54
Código do programa anterior:

% Programa para determinar o diagrama de Momento Fletor de Vigas


submetidas
% à carregamento distribuído retangular, carga concentrada no centro
do vão
% e ambas.

% INPUTS:
% L = Comprimento da viga, em centímetros.
% tipo_de_carregamento = 1 para carga dist. retangular
% 2 para carga concentrada
% 3 para as duas situações anteriores
juntas
% Lp = Posição da carga concentrada, em metros
% q = Carregamento distribuído, em kN/m
% P = Carga concentrada, em kN

function momento_viga_biapoiada
clc;
close all;

% Entrada das Variáveis

L = input('Digite o comprimento da viga:\n');


fprintf('Tipos de carregamentos:\n 1 - carga distribuída retangular\n
2 - carga concentrada no centro do vão\n 3 - carga distribuída com
carga concentrada no centro do vão\n')
tipo_de_carregamento = input('Digite o tipo de carregamento conforme a
descrição acima:\n');

if tipo_de_carregamento == 1
q = input('Digite o valor da carga distribuída, em kN/m:\n');
elseif tipo_de_carregamento == 2
P = input('Digite o valor da carga concentrada, em kN:\n');
Lp = input('Digite a posição da carga concentrada, em m:\n');
elseif tipo_de_carregamento == 3
q = input('Digite o valor da carga distribuída, em kN/m:\n');
P = input('Digite o valor da carga concentrada, em kN:\n');
Lp = input('Digite a posição da carga concentrada, em m:\n');
end

% Cálculo dos Momentos Fletores

if tipo_de_carregamento == 1
for x = 1:L+1
M(x) = ((-q*(x-1)^2)/2 + q*L/2)/100;
end
x = 1:L+1;
plot(x,M);

elseif tipo_de_carregamento == 2
for x = 1:Lp
M1(x) =(P*(L-Lp)*(x-1)/L)/100;
end
for x = Lp:L+1
M2(x) = ((P*(L-Lp)/L - P)*(x-1) +P*Lp)/100;

55
end
x=1:L+1;
M = [M1 M2(651:end)];
plot(x,M);

elseif tipo_de_carregamento == 3
for x =1:Lp
M1(x) =((P*(L-Lp)*(x-1)/L) +(-q*(x-1)^2)/2 + q*L/2)/100;
end
for x = Lp:L+1
M2(x) = (((P*(L-Lp)/L - P)*(x-1) +P*Lp) + (-q*(x-1)^2)/2 +
q*L/2)/100;
end
x=1:L+1;
M = [M1 M2(651:end)];
plot(x,M);
end
end

56
10. 2 LAÇO while-end
 Estrutura do laço while-end

while expressão condicional

comando 1
comando 2
.
.
.
comando n
contador
end

 A expressão condicional no laço while deve incluir ao menos uma variável


 As variáveis da expressão condicional devem ser iniciadas corretamente, quando
o MATLAB for executar pela primeira vez o comando.
 Pelo menos uma variável da expressão condicional deve ser modificada dentro
do laço (contador), de outro modo o laço será executado indefinidamente (loop
infinito).

EXEMPLO:

x=1; %inicia a variável (condição inicial)


while x<=15 % Condição de saída do laço
x=2*x % Comando e contador do laço
end

57
EXEMPLO DE APLICAÇÃO:

Escreva um programa que verifica e calcula o número máximo de barras para uma
camada de aço para armadura de flexão, em uma seção transversal de concreto
armado, tomando como entrada apenas a área de aço necessária e a largura da viga.
Utilize como dados para montar o código:

 Espaçamento mínimo entre barras: 20cm


 Cobrimento : 2,5cm
 Diâmetro do estribo = 5mm
 Diâmetros usuais para armadura de flexão: 5.0mm ; 6.3mm ; 8mm ; 10mm ;
12.5mm ; 16mm ; 20mm ; 25mm ; 32mm ; 40mm ; 50mm.

O código estará na próxima página.

58
CÓDIGO DO EXEMPLO ANTERIOR:

% detalhamento de armadura inferior para 1 camada de aço.

function [n_barras,fi,e] = detalha_secao_1camada(Asi,bw)


if Asi>0
% Diâmetros
fprintf('diâmetros usuais:\n 5.0 mm \n 6.3 mm \n 8.0 mm \n
10.0 mm \n 12.5 mm \n 16.0 mm \n 20.0 mm \n 25.0 mm \n 32.0
mm \n 40.0 mm \n 50.0 mm\n ');
diametros= [5.0 6.3 8 10 12.5 16 20 25 32 40 50];
Nbarras = 0.1; nmax = 0; % Inicia a
condição a ser analisada pelo laço.

a = 0; % Inicia a variável
que altera a entrada das bitolas
% a cada vez que o
laço é executado.

% laço variando as bitolas das barras.


while (Nbarras > nmax)
a=a+1;
fi = diametros(1,(a));
Area_1barra = pi*(fi^2)/4; % Área de uma barra
para o fi em execução no laço

Nbarras = Asi/Area_1barra; % Número de barras


necessário para atender ao dimensionamento,
% para um determinado
fi
fi_estribo = 5; % fi_estribo= diâmetro
do estribo (usual 5mm)
c=25; % c= cobrimento mínimo
de norma (usual 25mm)
l=bw-(2*(c+fi_estribo)); % l = espaço onde as
barras serão colocadas(início e fim da ar-
% madura longitudinal
N = (20+l)/(fi+20); % N = Número máximo de
barras por camada(no caso uma) atendendo
% ao espaçamento mínimo
de norma (20mm)
nmax = floor(N); % nmax = Arredondanda o
valor de N para o natural inferior mais
% próximo.
acr = ((N-nmax)*(fi+20))/(nmax-1); % acr = acréscimo no
espaçamento mínimo(quando N não é exato)
e=20+acr; % espaçamento final
entre barras
end
59
n_barras = ceil(Nbarras); % n_barras =
Arredondamento para o maior número natural mais pró-
% ximo do valor obtido pelo laço

novo_As = n_barras*(pi*(fi^2)/4); % novo_As = Nova área


de aço(real) a partir da armadura detalhada

fprintf(' a armadura será de %d barras de %0.1f mm de


diâmetro, com espaçamento de %0.2f mm\n',...
n_barras,fi,e); % retorna em texto na
command window o detalhamento
% final.

fprintf(' A nova área de aço será de %0.2f mm²\n',...


novo_As); % retorna em texto na
command window o valor da nova área de aço.

else
fprintf('Não há detalhamento de armadura\n');
end

60
10. 3 COMANDOS BREAK E CONTINUE
 BREAK
 O comando break, quando inserido em um laço for ou while, provoca a saída
imediata do laço. Assim, quando o MATLAB encontra um comando break, o
programa salta para o comando end.
 Se dentro de um programa ou função, provoca o término imediato de sua
execução, a partir de onde está inserido.
 É comumente utilizado dentro de sentenças condicionais. Quando atingida uma
condição, é um modo eficaz de parar um looping.

 CONTINUE
 É utilizado dentro de um laço para provocar o fim do passo atual e iniciar o
próximo processo de looping. Geralmente utilizado dentro de uma sentença
condicional, de forma a conduzir o laço até o comando end e retomando o
próximo passo.

61
11 REFERÊNCIAS

FITZPATRICK, LÉDECZI, J. Michael, Ákos. Computer Programming with MATLAB. 1. Ed.

GILAT, Amos. MATLAB com Aplicações em Engenharia. 4 ed. Porto Alegre: Bookman
editora, 2012, 417p.

MATSUMOTO, Élia Yathie. MATLAB® 7: Fundamentos. 2 ed. São Paulo: Érica 2008

62

Você também pode gostar