凡例の系列名に変数の値を入れたいです

66 ビュー (過去 30 日間)
sota kagawa
sota kagawa 2020 年 6 月 24 日
コメント済み: sota kagawa 2020 年 6 月 24 日
凡例に変数のなかの値をいれたいです。方法があれば教えて欲しいです。
open_system( 'MPC_SISO_0_block' )
mpc_out = sim( 'MPC_SISO_0_block' );
figure
title( 'Deterioration of the MPC' )
hold on
plot( mpc_out.ScopeData{1}.Values.Time,mpc_out.ScopeData{2}.Values.Data,'LineWidth',2 )
dm = 0.1;
for cnt = -3:3
dp = dm * cnt;
d_K0 = K0 * dp;
num_p = K0 + d_K0;
plant = tf( num_p, den_p );
open_system( 'MPC_SISO_0_block' )
mpc_out = sim( 'MPC_SISO_0_block' );
plot( mpc_out.ScopeData{1}.Values.Time,mpc_out.ScopeData{2}.Values.Data )
% plot( mpc_out.ScopeData{1}.Values.Time,mpc_out.ScopeData{2}.Values.Data*(1+cnt*0.1) )
end
legend
title( 'MPC K' )
hold off
 これはスクリプトの一部ですが、このd_K0の値を凡例に入れ、例えばd_K0=1のとき、K=1と表示されるようにしたいです。

採用された回答

Takumi
Takumi 2020 年 6 月 24 日
以下のようにしてDisplayNameを設定するのはいかがでしょうか.
open_system( 'MPC_SISO_0_block' )
mpc_out = sim( 'MPC_SISO_0_block' );
figure
title( 'Deterioration of the MPC' )
hold on
plot( mpc_out.ScopeData{1}.Values.Time,mpc_out.ScopeData{2}.Values.Data,'LineWidth',2 )
dm = 0.1;
for cnt = -3:3
dp = dm * cnt;
d_K0 = K0 * dp;
num_p = K0 + d_K0;
plant = tf( num_p, den_p );
open_system( 'MPC_SISO_0_block' )
mpc_out = sim( 'MPC_SISO_0_block' );
txt = ['K=',num2str(d_K0)];
plot( mpc_out.ScopeData{1}.Values.Time,mpc_out.ScopeData{2}.Values.Data ,'DisplayName',txt)
% plot( mpc_out.ScopeData{1}.Values.Time,mpc_out.ScopeData{2}.Values.Data*(1+cnt*0.1) )
end
legend show
title( 'MPC K' )
hold off
  1 件のコメント
sota kagawa
sota kagawa 2020 年 6 月 24 日
実行したところうまく動きました。本当にありがとうございます。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAnalysis についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!