Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução Ao Matlab PDF
Introdução Ao Matlab PDF
s para Eng
Introduo ao Matlab
ormticas
V 1.1
aes Info
Aplica
2008
Introduo
genharia
Engenharia:
Matlab (Matrix Laboratory) e Simulink
ormticas
Labview
Mathematica e Maple
aes Info
Mathcad
Maxwell 2D / 3D, Ansys, Flux 2D
Aplica
2
Srgio Cruz
Introduo
genharia
Electrotcnica:
Controlo, Processamento de Sinal, Processamento de Voz e
Imagem, Energia (Linhas de Transmisso, Mquinas Elctricas,
Aplica
3
Srgio Cruz
Matlab - Introduo
genharia
numrico
i
P
Permite
it o desenvolvimento
d l i t d
de programas ao nvel
ld da(o):
( )
ormticas
Anlise numrica
aes Info
Anlise de dados
Clculo matricial
Processamento de sinais
Aplica
Construo de grficos
etc.
4
Srgio Cruz
Matlab - Introduo
genharia
pequena percentagem
t das
d funcionalidades
f i lid d ddo M
Matlab
tl b
IIremos abordar
b d os conceitos
it b
bsicos
i numa primeira
i i ffase e
ormticas
5
Srgio Cruz
Matlab Ambiente de Trabalho
genharia
distintas:
A jjanela de comando ((onde aparece
p o smbolo >>))
ormticas
6
Srgio Cruz
Matlab Operadores
p Aritmticos
genharia
Operador
p Funcionalidade
s para Eng
^ Potenciao
/ Diviso direita
ormticas
\ Diviso esquerda
aes Info
* Multiplicao
+ Adio
Aplica
- Subtraco
7
Srgio Cruz
Matlab Operadores
p Relacionais
genharia
s para Eng
Operador Funcionalidade
< Menor
ormticas
> Maior
aes Info
== Igual
Aplica
~= Diferente
8
Srgio Cruz
Matlab Operadores
p Lgicos
g
genharia
Operador Funcionalidade
s para Eng
~ NOT (negao)
| OR (ou inclusivo)
xor ou exclusivo
aes Info
Exemplo:
>> 1==2 & 4>=3
ans =
0
9
Srgio Cruz
Tipos
p de dados no Matlab
genharia
numeric
single (4 bytes)
d bl (8 b
double bytes,
t titipo d
de d
dado
d por d
defeito)
f it )
ormticas
cell
Informao
adicional: usar o comando help
p datatypes
yp
10
Srgio Cruz
Declaraes,
, constantes e variveis
genharia
11
Srgio Cruz
Vectores e Matrizes
genharia
x=
1 2 3
ou
aes Info
>>x=2:3:11
x=
Aplica
2 5 8 11
12
Srgio Cruz
Vectores e Matrizes
genharia
>>x=linspace(2,8,4)
x=
aes Info
2 4 6 8
>> x=linspace(2,7,4)
x=linspace(2 7 4)
Aplica
x=
2.0000 3.6667 5.3333 7.0000
13
Srgio Cruz
Vectores e Matrizes
genharia
A=
1 3 6
4 2 6
ormticas
6 8 9
Em alternativa, pode-se definir a matriz A linha a linha, premindo <enter>
aps a introduo de cada linha
aes Info
>> A=[1 3 6
426
6 8 9]
Aplica
A=
1 3 6
4 2 6
6 8 9
14
Srgio Cruz
Vectores e Matrizes
genharia
y=
1
34
ormticas
56
aes Info
15
Srgio Cruz
Vectores e Matrizes
genharia
>> A(3,2:end)
ans =
8 9
ormticas
16
Srgio Cruz
Vectores e Matrizes
genharia
>> size(x)
ans =
ormticas
1 4
Para aceder individualmente ao nmero de linhas e colunas,
poder se escrever
poder-se-
aes Info
>> [linhas,colunas]=size(A);
Neste exemplo,
p , linhas e colunas so variveis q
que sero inicializadas
Aplica
No caso de vectores
vectores, pode
pode-se
se ainda usar o comando length
para obter o comprimento dos mesmos
17
Srgio Cruz
Vectores e Matrizes
genharia
da
: d seguinte
i t fforma:
B= x=
1
1 34 45
4
aes Info
4 5 6 100
100 200 300 34
5
Aplica
200
45
6
300
18
Srgio Cruz
Vectores e Matrizes
genharia
5 6
13 17
>> C=A.*B
C=A *B % Neste caso C(i C(i,j)=A(i,j)*B(i,j)
j)=A(i j)*B(i j)
Aplica
C=
3 10
3 2
19
Srgio Cruz
Vectores e Matrizes
genharia
Comando Funcionalidade
eye(m,n)
y ( , ) Cria uma matriz identidade de dimenses mn
ormticas
nulos
Cria uma matriz composta por elementos
rand(m,n) e randn(m,n) aleatrios (entre 0 e 1 no caso de rand)
Aplica
20
Srgio Cruz
Funes
Sobre Escalares
genharia
sin sqrt
asin abs
ormticas
cos ceil
acos round
aes Info
exp floor
tan sign
atan rats
21
Srgio Cruz
Funes
Sobre Vectores e Matrizes
genharia
s para Eng
max min
prod sum
aes Info
all any
mean std
Aplica
22
Srgio Cruz
Funes
Sobre Matrizes
genharia
eig chol
svd inv
ormticas
lu qr
hess schur
aes Info
expm sqrtm
size norm
Aplica
cond rank
triu tril
poly det
23
Srgio Cruz
Formatao
da Sada
genharia
apresenta
t os nmeros
no monitor
it
24
Srgio Cruz
Utilidades Diversas
genharia
>> clear all % idntico a clear mas elimina tambm funes, atalhos MEX, etc.,
etc.
Existem
E i t variveis
i i que o matlab
tl b j ttraz d
definidas
fi id por d
defeito
f it e que no
aes Info
25
Srgio Cruz
Utilidades Diversas
genharia
Para suspender este comando faz-se diary off e para voltar a habilit-lo
faz-se diary on
26
Srgio Cruz
Utilidades Diversas
genharia
27
Srgio Cruz
Nmeros Complexos
p
genharia
>> a=2+3i;
>> abs(a)
aes Info
ans =
3.6056
>> angle(a)
ans =
Aplica
0.9828
Pode-se
Pode se tambm definir matrizes cujos elementos so nmeros
complexos
28
Srgio Cruz
Nmeros Complexos
p
genharia
>> C
ans =
1 0000 - 1.0000i
1.0000 1 0000i 2 2.0000
0000 + 3 3.0000i
0000i 3
3.0000
0000
aes Info
>> C.
C'
Aplica
ans =
1.0000 + 1.0000i 2.0000 - 3.0000i 3.0000
1 0000 - 1.0000i
1.0000 1 0000i 0+44.0000i
0000i -1.0000
1 0000 + 2
2.0000i
0000i
29
Srgio Cruz
Grficos 2D em Matlab
genharia
construir
t i grficos
fi (2D e 3D) no matlab
tl b
Comando Funcionalidade
ormticas
semilogy
gy Grfico com escala semi-logartmica (eixo y)
Aplica
30
Srgio Cruz
Grficos 2D em Matlab
genharia
Comando Funcionalidade
s para Eng
hist Histograma
31
Srgio Cruz
Grficos 2D em Matlab - Exemplos
p
genharia
>> t = 1:0.1:2*pi;
s para Eng
>> y = sin(t);
i (t)
>> plot(y);
ormticas
32
Srgio Cruz
Grficos 2D em Matlab - Exemplos
p
genharia
>> t = 1:0.1:2*pi;
s para Eng
>> y = sin(t);
i (t)
>> plot(t,y);
ormticas
Neste formato, o
comando plot permite
obter um grfico xy
aes Info
Aplica
33
Srgio Cruz
Grficos 2D em Matlab - Exemplos
p
genharia
>> t = 1:0.1:2*pi;
s para Eng
>> y1=sin(t);
1 i (t)
>> y2=sin(t-2*pi/3);
>> y3=sin(t+2*pi/3);
y3 sin(t 2 pi/3);
ormticas
>> plot(t,y1,t,y2,t,y3);
aes Info
no mesmo grfico
34
Srgio Cruz
Grficos 2D em Matlab - Exemplos
p
genharia
>>A=[y1;y2;y3];
>>plot(t,A);
Mais informao: help plot
ormticas
Para criar uma nova janela onde o grfico vai ser criado, usa-se o
comando figure
aes Info
35
Srgio Cruz
Grficos 2D em Matlab - Exemplos
p
genharia
>> subplot(2,3,1)
s para Eng
>> plot(t,y1)
>> subplot(2,3,2)
>> plot(t,y2)
l t(t 2)
ormticas
>> subplot(2,3,3)
>> plot(t,y3)
plot(t y3)
aes Info
>> subplot(2,3,4)
>> plot(t,t.^2)
Aplica
>> subplot(2,3,5)
>> plot(t,t)
36
Srgio Cruz
Grficos 2D em Matlab
genharia
representa
t um nmero
complexo, o matlab
representa a parte
ormticas
imaginria do nmero em
funo da parte real. Um
aes Info
exemplo:
>> Z=[1+2i 2+3i 10+30i];
>> plot(Z)
l t(Z)
Aplica
37
Srgio Cruz
Grficos 2D em Matlab
genharia
so apresentados de seguida
Comando Funcionalidade
ormticas
text
Aplica
38
Srgio Cruz
Grficos 2D em Matlab - Exemplos
p
genharia
uma varivel,
i l pode-se
d usar a
funo fplot. Um exemplo:
ormticas
% grfico 2D de f(x)
>> xlabel(x); % nome do eixo do x
>> yylabel(f(x));
( ( ) ); % nome do eixo do y
Aplica
39
Srgio Cruz
Grficos em Matlab
genharia
40
Srgio Cruz
Grficos 3D em Matlab
genharia
seguintes:
plot3
ormticas
surf
mesh
contour3
aes Info
comet3
fill3
Aplica
41
Srgio Cruz
Grficos 3D em Matlab - Exemplos
p
genharia
Exemplo: representar
grficamente a funo
g
s para Eng
f(x,y)=x*exp(-x^2-y^2)
>> z=x.*exp(-x.^2-y.^2);
>> plot3(x,y,z); % grfico 3D
>> figure % abre uma outra janela de grfico
aes Info
42
Srgio Cruz
Introduo
e Visualizao
de Dados
genharia
Para que o utilizador possa introduzir dados num dado programa, existe o
comando input:
p
s para Eng
Introduza o n de alunos: 34
No final, atribui o valor introduzido pelo utilizador varivel a
Para visualizar resultados usa-se o comando disp. p Alguns
g exemplos:
p
aes Info
>> disp(a)
>> disp(A)
>> disp(Os alunos estudam muito ... pouco)
Aplica
NOTA: dentro de um ficheiro .m, esta instruo pra a execuo e sai do ficheiro
.m
43
Srgio Cruz
Introduo
e Visualizao
de Dados
genharia
disp:
di
>> clc;
>> A=rand(4);
ormticas
>> [m,n]=size(A);
p([ uma matriz num2str(m)
>> disp([A ( ) x num2str(n)])
( )])
aes Info
>> disp(A);
44
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
Instruo if
Ciclo for
Ciclo while
ormticas
Estrutura switch
if condio
% faz alguma coisa
else
% ffaz uma coisa
i dif
diferente
t
Aplica
end
45
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
x=aula2;
y=aula1;
s para Eng
if strcmp(x,y)
disp(As aulas so iguais)
else
di (A aulas
disp(As l so dif
diferentes)
t )
ormticas
end
Nota: repare que a comparao de strings efectuada com o comando strcmp e
no com ==! Experimente fazer x==y e observe os resultados
aes Info
46
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
Um exemplo:
A=[1 23 34;3 4 5]
[m,n]=size(A);
aes Info
soma=0;
for coluna=1:n
for linha=1:m
soma=soma+A(linha,coluna);
( )
Aplica
end
end
di ([A soma d
disp([A de ttodos
d os elementos
l t : num2str(soma)])
2 t( )])
47
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
Um exemplo:
x=1:10
aes Info
soma=0;
k=1;
while k<7
Aplica
soma=soma+x(k);
k=k+1;
end
disp([A soma dos primeiros seis elementos : num2str(soma)])
48
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
A=[1 23 34;3 4 5]
[m,n]=size(A);
aes Info
soma=0;
for coluna=1:n
for linha=1:m
soma=soma+A(linha,coluna);
A(li h l )
Aplica
break
end
end
disp([A soma de alguns elementos : num2str(soma)])
49
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
[m,n]=size(A);
soma=0;
f coluna=1:n
for l 1
aes Info
for linha=1:m
continue
soma=soma+A(linha,coluna);
Aplica
end
end
disp([A soma de alguns elementos : num2str(soma)])
50
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
% executa cdigo 1
case valor2
% executa
t cdigo
di 2
aes Info
otherwise
% executa cdigo alternativo
end
51
Srgio Cruz
Controlo do Fluxo de Programa
g
genharia
a=input('Introduza um nmero:');
switch a
case 2
ormticas
otherwise
disp('Introduziu
disp( Introduziu um nmero grande demais');
demais );
end
52
Srgio Cruz
Funes
em Matlab
genharia
O comando function permite cri-las. Uma funo deve ser definida da seguinte
forma:
ormticas
function y=nomefuncao(par1,par2,par3....)
% o cdigo da funo escrito aqui
y=par1+sqrt(par2)+....% o(s) valor(es) da funo deve(m) ser associado(s)
aes Info
A funo pode ter vrios parmetros de entrada e de sada (no exemplo anterior
apenas h um parmetro de sada
sada. Caso houvesse mais do que um parmetro de
Aplica
O cdigo
g relativo funo
deve ser g
gravado num ficheiro .m e a directoria onde o
mesmo gravado deve fazer parte do path do matlab
53
Srgio Cruz
Funes
em Matlab
genharia
NOTAS IMPORTANTES:
Caso o nome dado funo seja diferente do nome do ficheiro .m criado
aquando da definio da mesma, este ltimo nome que deve ser usado para
aes Info
invocar a funo!!!
As variveis definidas no interior da funo no sero acessveis a partir do
espao de trabalho do matlab (workspace)
Tenha em mente que uma funo
f no atribui nenhum valor a nenhuma
Aplica
varivel
A excepo a esta regra acontece se definir variveis globais no corpo da
funo (faa help global para mais informao)
A execuo da funo pode ser interrompida com o comando return
54
Srgio Cruz
Funes
em Matlab
genharia
Eis um exemplo de uma funo definida pelo utilizador, que recebe como
parmetro de entrada um vector e representa
p p uma espiral
p a trs
s para Eng
dimenses:
function [x,y,z] = spir3(t)
x = cos(20*t).*exp(-t.^2);
y = sin(20*t).*exp(-t.^2);
ormticas
z = exp(-t.^2);
plot3(x,y,z);
aes Info
55
Srgio Cruz
Polinmios em Matlab
genharia
Por outro lado, dada uma matriz B, quadrada, pode-se obter o polinmio
caracterstico associado a esta matriz com o comando poly. Um exemplo:
>> B=[1 3 5;2 4 6;1 2 3]
B=
Aplica
1 3 5
2 4 6
1 2 3
>> p=poly(B) % p(s)=det(sI-B)
p=
1.0000 -8.0000 -4.0000 0
56
Srgio Cruz
Polinmios em Matlab
genharia
>> r=roots(p)
r=
0
ormticas
8.4721
-0.4721
As operaes
A dde soma e subtraco
bt efectuam-se
f t d fforma idntica
de id ti d
dos
aes Info
a=
2 4 7 3
b=
4 8 11
57
Srgio Cruz
Polinmios em Matlab
genharia
produto =
8 32 82 112 101 33
>> [quociente,resto]=deconv(a,b)
[quociente resto]=deconv(a b)
ormticas
quociente =
0.5000 0 % q(s)=0.5s
resto
t =
aes Info
58
Srgio Cruz
Polinmios em Matlab
genharia
y=sqrt(x);
p=polyfit(x,y,5);
Se agora fizer plot(x,y,x,polyval(p,x)) poder observar quanto boa a
interpolao produzida
59
Srgio Cruz
Integrao
g Numrica em Matlab
genharia
quad
quadl
Como exemplo,
p p pretende-se calcular o integral
g de uma dada funo.
ormticas
60
Srgio Cruz
Mnimos,, Mximos e Zeros em Matlab
genharia
Por vezes, dada uma funo, necessrio achar os pontos onde ocorrem
os seus mnimos e mximos locais, bem como os zeros
s para Eng
61
Srgio Cruz
Equaes
q Diferenciais em Matlab
genharia
ode23t Pequena
ode23tb Pequena Para resolver problemas duros
62
Srgio Cruz
Equaes
q Diferenciais em Matlab
genharia
A sintaxe mais simples para resolver uma equao diferencial (ou sistema
de equaes diferenciais) [t,y]
[t,y]=solver(funcao,intervalotempo,y0),
solver(funcao,intervalotempo,y0),
s para Eng
onde solver representa uma das funes que constam da tabela anterior,
funcao representa uma funo (gravada num ficheiro .m) que descreve
( ) equao(es)
a(s) q ( ) diferencial(is)
( ) a resolver,, intervalotempo
p representa
p o
ormticas
63
Srgio Cruz
Equaes
q Diferenciais em Matlab
genharia
function dy = eq1(t,y)
Aplica
64
Srgio Cruz
Equaes
q Diferenciais em Matlab
genharia
Finalmente pode
pode-se
se chamar a funo que ir resolver a equao
ormticas
diferencial:
[t, y]=ode45(eq1, intervalotempo,y0);
aes Info
Pode representar-se
p graficamente a soluo
g com o comando p plot(t,y)
( ,y) e
verificar que a soluo numrica muito prxima da soluo exacta
65
Srgio Cruz
Equaes
q Diferenciais em Matlab
genharia
f=y(1);
g=y(2);
dfdt=f-4*g;
d d g; %pprimeira
e a equao d
diferencial
e e ca
aes Info
forma:
[t,funcoes]=ode45(meusistema,[-2 0.5],[1 0]);
No vector t e nas duas colunas da matriz funcoes ficam armazenados os
instantes de tempo (no intervalo [-2,0.5]) e as solues das funes f e g,
respectivamente, que satisfazem o sistema de equaes diferenciais dado
66
Srgio Cruz
Equaes
q Diferenciais em Matlab
genharia
67
Srgio Cruz
Tratamento de Dados de Entrada
genharia
if isempty(A)
disp('No introduziu qualquer matriz')
else
l
aes Info
Prima F1 e faa uma busca por is. Seleccione a primeira linha dos
resultados da busca e observe o conjunto de funes que o matlab
disponibiliza para verificar o tipo de dados que o utilizador introduziu
68
Srgio Cruz
Funes
na Janela de Comando
genharia
( y)
f=inline('x^2+3*y') % Define a funo
de duas variveis independentes
p
aes Info
ff=inline(sin(x1)+x2,x1,x2)
inline( sin(x1) x2 , x1 , x2 ) % Define uma funo f de variveis
Aplica
% independentes x1 e x2
69
Srgio Cruz
Interpolaes
p em Matlab
genharia
70
Srgio Cruz
Interpolaes
p em Matlab
genharia
Um exemplo de interpolao a 1
dimenso:
s para Eng
x=0:5; y=sin(x);
ormticas
xi=linspace(0,5,60);
% interpolao com splines cbicos
yi=interp1(x y xi 'spline');
yi=interp1(x,y,xi, spline );
aes Info
71
Srgio Cruz
Interpolaes
p em Matlab
genharia
Ze=Xe.^2+Ye.^2;
subplot(3,1,1), mesh(Xe,Ye,Ze) % representa o grfico da funo f exacta
aes Info
72
Srgio Cruz
Interpolaes
p em Matlab
genharia
x = -2:2;
ormticas
y = [-2:2];
z = (sin(y).*exp(-y.^2))*(sin(x).*exp(-x^2));
xi = linspace(-2
linspace(-2,2,100);
2 100);
aes Info
yi = linspace(-2,2,100);
zi = interp2(x,y,z,xi,yi);
mesh(xi,yi,zi)
Aplica
73
Srgio Cruz
Tratamento de Erros Tryy e Catch
genharia
Quando surge um erro num programa executado em matlab, ele sinaliza tal
erro e aborta a execuo do programa (ficheiro .m)
s para Eng
tryy
Aplica
74
Srgio Cruz
Tratamento de Erros Tryy e Catch
genharia
A=zeros(4,3)
B=eye(4,4)
ormticas
try
C=A*B;
disp('O
disp( O produto de A por B igual a:')
a: )
aes Info
disp(C)
catch
C=NaN;
Aplica
75
Srgio Cruz
Gravao/Leitura
de Dados
genharia
Foi visto anteriormente que o matlab dispe dos comandos save e load para
gravar/ler num/de ficheiro (por defeito grava ficheiros com extenso .mat, prprios
do matlab) as variveis do ambiente de trabalho
trabalho. Usando o parmetro -ascii a
ormticas
gravao ser efectuada num ficheiro de texto (Ex: >> save -ascii c:\teste.txt a b
%grava as variveis a e b num ficheiro de texto)
aes Info
Para alm dos comandos load e save, o matlab possui outros comandos por forma
a exportar
t dados
d d para serem usados
d por outras
t fferramentas
t ded anlise
li e vice-versa.
i
O matlab suporta os tipos de dados mais frequentes (ficheiros de texto, binrios,
Excel (xls), etc)
76
Srgio Cruz
Gravao/Leitura
de Dados
genharia
caracteres especiais (de controlo), tais como \n, \r, \t, \b, \f (nova linha, <enter>,
tab, espao para trs e nova pgina, respectivamente)
77
Srgio Cruz
Gravao/Leitura
de Dados
genharia
No exemplo anterior, %g indica que a primeira varivel deve ser afixada usando
uma notao o mais compacta possvel e %8.6f indica que a segunda varivel deve
ser afixada num formato de vrgula fixa com um nmero mximo de oito caracteres
aes Info
Repare que como temos de afixar dois nmeros (x e sqrt(x)) conveniente usaram-
se dois cdigos de converso na string de formatao. Experimente omitir por
Aplica
78
Srgio Cruz
Gravao/Leitura
de Dados
genharia
s para Eng
79
Srgio Cruz
Gravao/Leitura
de Dados
genharia
Para alm do tipo de converso a efectuar (%d, %f, etc), pode-se ainda especificar o
nmero mximo de caracteres das variveis ((w)) bem como o nmero de caracteres
s para Eng
80
Srgio Cruz
Gravao/Leitura
de Dados
genharia
1.0000
1.4142
ormticas
1.7321
2.0000
aes Info
81
Srgio Cruz
Gravao/Leitura
de Dados
genharia
A=
1 2 3
ormticas
4 5 6
7 8 9
aes Info
82
Srgio Cruz
Gravao/Leitura
de Dados
genharia
altura=[5;8;15;25];
profundidade=[15;15;20;35];
volume=largura.*altura.*profundidade/10000;
volume largura. altura. profundidade/10000; % volume em metros cbicos
aes Info
for i=1:length(largura)
fprintf('%-8s %8d %8d %8d %9.5f\n',...
etiquetas(i,:),largura(i),altura(i),profundidade(i),volume(i))
end
83
Srgio Cruz
Gravao/Leitura
de Dados
genharia
c=5/9*(f-32);
fprintf('%5.2f graus Fahrenheit correspondem a %5.2f graus centigrados.\n',f,c)
aes Info
84
Srgio Cruz
Gravao/Leitura
de Dados
genharia
O comando
d dlmread
dl d id
idntico
ti mas para o processo d de lleitura.
it Si
Sintaxe:
t
aes Info
85
Srgio Cruz
Gravao/Leitura
de Dados
genharia
A=rand(4,3);
xlswrite('c:\teste.xls',A) % Grava a matriz A em ficheiro
B l
B=xlsread(c:\teste.xls);
d( \t t l ) % L o fificheiro
h i e armazena o resultado
lt d em B
ormticas
exemplos:
identificador=fopen('c:\teste.bin','w');
A=rand(4
A rand(4,3);
3);
Aplica
86
Srgio Cruz
Gravao/Leitura
de Dados
genharia
ident=fopen('c:\teste.bin','r')
B=fread(ident 'float64');
B=fread(ident, float64 ); % L os dados e armazena o resultado em B
s para Eng
fclose(ident);
B=reshape(B,4,3); % ...porque os dados esto armazenados num vector coluna
ormticas
87
Srgio Cruz