1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Ajuda em MATLAB

Discussão em 'Programação' iniciada por andre.morao, 18 de Maio de 2008. (Respostas: 3; Visualizações: 742)

  1. andre.morao

    andre.morao Power Member

    Boas.

    Tenho uma simulação para fazer em MATLAB e no final apresentar um gráfico. Esta parte do gráfico é que me está a fazer confusão.

    Eu estou a calcular valores do eixo do yy e do eixo do xx dentro de um ciclo. A primeira dúvida é, vou construindo o gráfico à medida que calculo os valores, ou vou guardando os valores e construo o gráfico no final?

    Qualquer que seja a solução não estou a ver como se implementa! Enfim, se for calculando e construindo logo o gráfico será algo do género:

    Código:
      
    while(...)
        xx = calc_xx(..);
        yy = calc_yy(...);
        plot(xx,yy)
        axis equal
        xlabel('Velocidade');
        ylabel('Altura');
        title('Variacao da Velocidade');
    Se for guardando os valores (não sei bem em que estrutura - ?), como e que faço a leitura do que guardei e construo o gráfico? Qual é mais ou menos a estrutura do código/sintaxe?

    Estou um bocado às aranhas, agradeço umas luzes.

    Tks
     
  2. FASC

    FASC Power Member

    Se fizeres "hold on" antes do ciclo, cada vez que fizeres plot ele adiciona os novos pontos ao gráfico.

    Conselho:
    Código:
    figure(1);[B]
    hold on;[/B]
    
    while(...)
        xx = calc_xx(..);
        yy = calc_yy(...);
        plot(xx,yy);
    end;
    
    axis equal
    xlabel('Velocidade');
    ylabel('Altura');
    title('Variacao da Velocidade');
    
    [B]hold off;[/B]
    
    Isto é uma das formas mais rápidas de adaptar ao teu problema. De outra forma terias de construir os teus vectores de xx e yy sabendo à partida qual o tamanho máximo que irias necessitar, depois carregavas os valores para dentro dos vectores e só depois farias o gráfico.

    exemplo:
    Código:
    [B]xx(1:1:601)=0;
    yy(1:1:601)=0;
    [/B] 
    for I = 1:601
        xx(I) = calc_xx(..);
        yy(I) = calc_yy(...);
    end;
    
    figure(1);
    plot(xx,yy);
    axis equal;
    xlabel('Velocidade');
    ylabel('Altura');
    title('Variacao da Velocidade');
    
     
  3. andre.morao

    andre.morao Power Member

    Antes de mais obrigado pelo resposta.

    Essa solução do hold on à partida parece-me bem. O objectivo mesmo é resolver da maneira mais simples, porque o que vai ser avaliado é o resultado no gráfico, não é a parte da programação (que até poderia ser numa linguagem convencional).

    Amanha vou testar.

    Diz-me só o que significa o figure(1) sff.

    Tks again!
     
  4. FASC

    FASC Power Member

    Na consola do Matlab: "help figure"

    Figure(X) serve para abrires uma figura em específico e trabalhares nela. Normalmente é boa programação (e dá jeito :P) abrir a figura na qual queres trabalhar para teres a certeza que todos os plots estão a ser mostrados e não há coisas sobrepostas (principalmente com o uso do hold on).
     

Partilhar esta Página