Matlab ploting em uma figura da função

1

Eu escrevi uma função que traça uma função y (t) usando 4 argumentos de entrada.

function plot_me_n1(A,B,m1,m2) 
t = linspace(0,10,10/0.01);
y=A*exp(-m1*t) - B*exp(-m2*t);
plot(t,y,'color',rand(1,4));
title('equation', 'fontsize', 10);
ylabel('y(t)');
xlabel('t');
end

Agora estou criando outra função que passa para a função multiple_me_n1 multiple variable para criar vários gráficos.

figure                 
hold all
A=[-8,8,-8];
B=[9,-9,-9];
m1=-3;
m2=-4;
arrayfun(@(a,b) plot_me_n1(a,b,m1,m2),A, B);
hold off

O problema é que ele exibe apenas o último gráfico, enquanto eu estou tentando conseguir exibir vários gráficos ao mesmo tempo. Importante mencionar, eu não posso mover plot () para fora da função porque eu quero manter a função plot_me_n1 possível para trabalhar por si só, não dependentemente de outros scripts. Então, como tornar possível exibir todos os gráficos ao mesmo tempo em uma figura? Quaisquer comentários de refatoração sobre como melhorar o código são bem-vindos. Obrigado.

Na verdade, o script está funcionando bem, apenas os gráficos estão sobrepostos uns aos outros.

    
por alex_mike 09.09.2018 / 01:23

1 resposta

1

O comando hold opera nos eixos de uma figura. Seu código produz uma figura, mas não contém um eixo quando você chama hold .

Corrija isso colocando o hold logo após o comando de plotagem para manter os gráficos previuos na mesma figura.

...
plot(t,y,'color',rand(1,4));
hold on
...

Além disso, o hold all será removido em versões futuras do Matlab, use hold on .

    
por 19.09.2018 / 12:40

Tags