nextupprevious
Next:Decomposição LU  Up:Tutorial Previous:Iniciando

Vetores e Matrizes
 

    Entrando e operando com matrizes
     Vetores e matrizes são os tipos básicos da linguagem MATLAB.   É necessário conhecer bem o como o MATLAB lida com as matrizes para se utilizar plenamente a linguagem.

    Vamos começar com um exemplo.  Suponha que se queira efetuar a multiplicação da matriz A com o vetor b dados por :

    Vamos primeiro entrar com os dados de A e b para depois efetuarmos a multiplicação.
    Para entrar com o vetor b digite o seguinte comando:
    >> b = [ 2  3]
    Essa notação é bem simples: um vetor é apenas uma seqüência de números entre colchetes,  separados por espaços em branco.
    Para entrar com a matriz A o comando é bem similar:
    >> A = [1  2;  0  1]
    Ou seja, uma matriz é uma seqüência de linhas separadas por ";".  E cada linha é uma seqüência de números separados por espaços em branco.  Note que com essa notação podemos considerar o vetor v como sendo uma matriz 1x2.

    Temos duas multiplicações possíveis : multiplicar a matriz à direita  - b.A -  e à esquerda - A.b  .   Vamos começar por b.A:
    Basta entrar com o operador "*" - o mesmo operador que efetua a multiplicação de dois números :

    >> b*A
    O resultado será exibido no Command Window.

    Na multiplicação A.b devemos notar que as dimensões de  A e b  não são compatíveis.  A é 2x2  e b é 1x2.  Se desejarmos efetuar a multiplicação de A com o vetor 2x1 correspondente a b, podemos entrar com o comando:

    >>b_coluna = [2; 3]
    Entrando nesse formato o vetor b_coluna passa a ter dimensão 2x1.  Agora a multiplicação da matriz A à esquerda é possível.
    >> A*b_coluna


    Uma alternativa mais elegante é usar o operador de transposição de matrizes - "  '  " - para se obter o b_coluna :

    >>b_coluna = b'
    Ou até efetuar a multiplicação diretamente
    >>A*b'


    Vamos agora a outro exemplo: suponha que se queira resolver o sistema linear   A.x = b ,  com A e b dados como no exemplo anterior.
   Temos portanto que efetuar a multiplicação A-1 .b . Como o MATLAB possui um operador de inversão de matrizes,  isso pode ser feito em uma linha de comando:

    >>x = inv(A)*b'


    Acessando elementos das matrizes - o operador " :  "

    Suponha que tenhamos na memória a  matriz  C:

    Se quisermos alterar o elemento posicionado na 2a. linha,  2a. coluna, somando 1 a ele  basta escrever

    >> C(2,2) = C(2,2) + 1 ;


    A matriz resultante será

    Podemos também acessar toda uma linha ou coluna de uma só vez.   O operador  " : " permite  esse tipo de acesso.  Por exemplo,  para alterar toda a 1.a  linha da matriz C para [3   2   1]  escrevemos

    >> C(1,  : ) =  [3  2  1]
    O significado do comando acima é,  tome a primeira linha de  C,   com todas as colunas,  e substitua o seu valor pelo vetor [3  2  1].   O resultado será

    O operador ":"  também pode ser usado para se acessar parte da matriz.   Por exemplo,  a submatriz D,  composta dos elementos pertencentes as duas primeiras linhas e das duas últimas colunas pode ser obtida com o comando

        >>D = C(1:2,  2:3);
    O significado é,  tome as linhas de 1 até 2  e as colunas de 2 até 3.  O resultado será

    O operador  ":"  tem também função na geração de vetores, especialmente vetores sequenciais.  Por exemplo,  s1 = [1 2 3 4  ...  100 ]  pode ser gerado por

    >> s1 = 1:100


    O comando

    >>s2 = 1:0.5:5
    resultará no vetor s2 = [1  1.5  2  2.5  3  3.5  4  4.5]  Ou seja,  um vetor com valores crescentes de 1 até 5,  com incremento de 0.5.

    Para gerar a sequencia dos primeiros 10 quadrados perfeitos o comando é

    >> s3 = (1:10) .^ 2



    Como podemos ver nos exemplos acima,  a linguagem MATLAB é uma ótima ferramenta para manipulação de matrizes.   Estas são tratadas de modo bastante natural e intuitivo pela linguagem.   Além disso o MATLAB é bastante eficiente nas operações que envolvem matrizes, o que em gera um impacto positivo na performance de muitas aplicações.
    Além dos operadores vistos nos exemplos o MATLAB possui um grande número de operadores e de funções para gerar e manipular matrizes.  Segue uma lista com uma pequena amostra das funções disponíveis:


    É importante saber também que grande parte das funções disponíveis no MATLAB,  como sin(x) e cos(x),  admitem matrizes como parâmetros,  efetuando a operação em cada elemento da matriz.  Isso possibilita uma concisão muito grande na escrita de programas.  Além disso,  é preferível usar a notação matricial do que rotinas equivalentes com FOR ou WHILE pois o MATLAB é interpretado,  mas é  muito eficiente em cálculos matriciais.


nextupprevious
Next:Decomposição LU  Up:Tutorial Previous:Iniciando