0
q=[1, 4, 10, 50, 100];
for j=1:length(q)
    for i=1:q(j)
        Dq=D(1:q(j),1:q(j));
        Vq=V(1:q(j),1:q(j));
        Cq=C(1:q(j));
        Bq=B(1:q(j));
    end
    S = logspace(-8,4,500);
    k=1;
    for p=S
        Y(k)=Cq*Vq*inv(1i*p*eye(q(j))-Dq)*inv(Vq)*Bq;
        k=k+1;
    end
    figure;
    hold on

    subplot(2,1,1);
    semilogx(S,real(Y));
    grid; ylabel('|H(j\omega)|'); 
    title(['Bode Plot: Magnitude Response (Real)q=',q(j)]);

    subplot(2,1,2);
    semilogx(S,imag(Y));
    grid; xlabel('\omega (rad/sec)'); ylabel('\angleH(j\omega)'); 
    title(['Bode Plot: Phase Response (Imaginary) q = ',q(j)]);
end

qたとえば、タイトルにq=1、...の値を出力したいと思います。コードは正常に機能していますが、タイトルの値、特にプロットしてq=100いる値が表示されません。これを修正する方法は?qq

4

1 に答える 1

1

数値を含むタイトルの文字列を作成するには、次を使用しますnum2str

title(['Bode Plot: Phase Response (Imaginary) q = ' num2str(q(j))]);
于 2012-04-18T04:05:29.217 に答える