シミュレーション データ インスペクターへの string データのログ記録
この例では、数値入力データに基づいて string データを自然言語出力テキストに連結する Stateflow® チャートの作成方法を説明します。出力テキストは、シミュレーション データ インスペクターおよび MATLAB® ワークスペースで表示できます。string データの詳細については、string を使用したテキスト情報の管理を参照してください。
この例のモデルは Sine Wave ブロックを使用して、閉じたパスに沿って移動する点の緯度と経度を提供します。Sine Wave ブロックは、振幅が 50、バイアスが 0、周波数が 1 です。Latitude
ブロックの位相は 0、Longitude
ブロックの位相は です。
チャートでは、これらの座標を調べ、次のルールに従って string q1
および q2
を割り当てます。
latitude
とlongitude
が正の場合、q1 = "North"
、q2 = "east"
。latitude
が正でlongitude
が負の場合、q1 = "North"
、q2 = "west"
。latitude
が負でlongitude
が正の場合、q1 = "South"
、q2 = "east"
。longitude
とlongitude
が負の場合、q1 = "South"
、q2 = "west"
。
その後、チャートでこれらの string を連結して出力 string sout
を生成します。
シミュレーション結果の表示
モデルのシミュレーション中に、チャートに出入りする信号がログに記録されます。
シミュレーションの結果を調べるには、シミュレーション データ インスペクターを開き、latitude
、longitude
、および sout
の各信号のチェック ボックスをオンにします。latitude
信号と longitude
信号は正弦曲線として表示されます。sout
信号は遷移プロットとして表示されます。遷移プロットの帯内に string の値が表示され、線の交差位置は値の変化を示します。
MATLAB ワークスペース内でログ データにアクセスするには、信号のログ オブジェクト logsout
を呼び出します。Stateflow は、string データ sout
を MATLAB string スカラーとしてエクスポートします。たとえば、コマンド プロンプトで次のように入力します。
Table = table(logsout.get("latitude").Values.Data, ... logsout.get("longitude").Values.Data, ... logsout.get("sout").Values.Data); Table.Properties.VariableNames = ... ["Latitude","Longitude","QuadrantInfo"]; Table([4:8:30],:)
ans = 4x3 table Latitude Longitude QuadrantInfo ________ _________ ________________________________ 28.232 41.267 "Location in Northeast Quadrant" 40.425 -29.425 "Location in Northwest Quadrant" -30.593 -39.548 "Location in Southwest Quadrant" -38.638 31.735 "Location in Southeast Quadrant"
チャート データのログ記録の詳細については、ステートとデータのシミュレーション出力のログを参照してください。