1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Matlab

Discussão em 'Programação' iniciada por ee09115, 21 de Maio de 2012. (Respostas: 10; Visualizações: 1465)

  1. Boas,

    costumo utilizar o Matlab e até agora não tenho tido problemas. Hoje não consigo fazer um simples diagrama de bode ou de nyquist ou até o lugar geométrico das raízes, dá sempre o mesmo erro e eu não sei porque..

    >> bode (tf([1],[1 1]))
    ??? Error using ==> lti.bode at 95
    Undefined function or method 'resppack.bodeplot' for input arguments of type 'cell'.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    >> nyquist (tf([1],[1 1]))
    ??? Error using ==> lti.nyquist at 85
    Undefined function or method 'resppack.nyquistplot' for input arguments of type 'cell'.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    >> rlocus (tf([1],[1 1]))
    ??? Error using ==> lti.rlocus at 78
    Undefined function or method 'resppack.rlplot' for input arguments of type 'double'.




    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Se alguém me puder ajudar, desde já obrigado.
     
  2. maGL

    maGL Power Member

    A função tf faz o quê? está defenida?
     
  3. faz uma função de tranferencia.
    eu tenho o mesmo matlab instalado num outro pc e funciona corretamente. E neste pc também funcionava!! mas, de um momento para o outro deixou de funcionar!!

    Cumps
     
  4. maGL

    maGL Power Member

    Tens os ficheiros .m no sitio certo? têm de estar no workspace
     
  5. Dukco

    Dukco Power Member

    Vou usar um tópico à sorte sobre Matlab:

    Tenho um ficheiro .txt com 3 colunas: data, psi-20, sp500.
    O psi-20 e o sp500 contém valores "normais" dos índices bolsistas em questão ao longo do tempo.

    Quero calcular a correlação entre as séries temporais: uso o "corr(psi20,sp500)" ou o "crosscorr(psi20,sp500)"?
    Depois quero desenhar o gráfico com a correlação entre os retornos logarítmicos dos dois índices. Esse retorno log está definido como logpsi20 e logsp500. Faço A=crosscorr(logpsi20,logsp500) e depois plot(A)?

    Já agora, quando faço este gráfico, como altero o eixo dos xx para aparecer as datas que estão em "data"?

    Muito obrigado.
     
  6. tuning

    tuning Power Member

    para invocares as colunas fazes carregas o ficheiro - load file.txt, sendo que cria uma variável à qual terás acesso, por exemplo com data=file(:,1), psi20=file(:,2) e sp500=file(:,3).
    já usei correlações mas não me lembro como eram feitas as contas, e que resultados esperar, mas apartir daqui podes enviar os índices como parâmetros. *edit: fui rever e usei a corrcoef()*

    se as datas forem sequenciais, podes usar a função timestamp.

    ex:

    x = [2 5 8 2 11 3 6];
    ts1 = timeseries(x,1:7); %aqui o x será o resultado da correlação
    ts1.Name = 'Daily Count';
    ts1.TimeInfo.Units = 'days';
    ts1.TimeInfo.StartDate='01-Jan-2011' % Set start date.
    ts1.TimeInfo.Format = 'mmm dd, yy' % Set format for display on x-axis.
    ts1.Time=ts1.Time-ts1.Time(1); % Express time relative to the start date.
    plot(ts1)
     
    Última edição: 13 de Novembro de 2013
  7. Dukco

    Dukco Power Member

    Estou mesmo a começar nisto e fiquei um pouco confuso com a tua resposta. O ficheiro já está separado em 3 colunas, foi importado via (import) e dei os nomes (por alguma razão que desconheço via dlmread sai um único ficheiro).

    Da forma como tenho os dados, calculo a correlação como?
     
  8. tuning

    tuning Power Member

    experimenta fazer o load do ficheiro.txt e depois corr(ficheiro(:,2),ficheiro(:,3)).
    fiz o crosscorr e abre logo um gráfico, não deve ser o que procuras. o corrcoef já não me lembro como é usado.
     
  9. Dukco

    Dukco Power Member

    O problema, pelo menos daquilo que me está a dar, é que o corr(....) dá um valor, por exemplo 0,8. Ora, depois para fazer um gráfico com isto não dá, não há sequência temporal.

    (obrigado pela paciência)
     
  10. FELiYCORA

    FELiYCORA 1st Folding then Sex

    Provavelmente estás a fazer a correlação entre todos os valores e não entre pares de valores.

    Para o plot tens que fazer plot(data,A)

    Lê a ajuda das funções que usas. Normalmente é tudo o que precisas para aprender a utilizar o Matlab.
     

Partilhar esta Página