Main Content

string を使用したテキスト情報の管理

string を使用してテキスト データを作成すると、チャートの動作を制御して読みやすいテキストを出力できます。

Stateflow での string の作成

Stateflow® における "string" とは、二重引用符 ("...") で囲まれたテキストです。さらに、C をアクション言語として使用するチャートでは、一重引用符 ('...') で囲まれた string がサポートされています。たとえば、次のチャートは、string データを入力として取ります。その入力に基づいて、チャートは対応する string 出力を生成します。

Chart that uses a string input to switch between two states, On and Off.

string のシンボルを指定するには、まず [プロパティ インスペクター] を開きます。[シンボル] ペインで、string に変換するデータを選択します。[プロパティ インスペクター][型][string] に設定します。Stateflow は、このデータ型にメモリ領域を動的に割り当てます。

string による計算

Stateflow チャートで string データを操作するには、次の表の演算子を使用します。

目的MATLAB アクション言語の関数C アクション言語の関数

2 つの string の連結

plus
h = "Hello,"
w = " world!"
x = plus(h,w)
strcat
s1 = "State";
s2 = "flow";
dest = strcat(s1,s2);

string の長さの判定

strlength
h = "Hello, world!"
x = strlength(h)
strlen
L = strlen("Stateflow");

string から double への変換

str2double
X = str2double("-12.345");
str2double
X = str2double("-12.345");

数値、boolean、列挙データから string への変換

string
a = [1307];
str = string(a)
tostring
dest = tostring(RED);

string の切り捨て

最大文字数の string データを作成することもできます。バッファー サイズが n 文字の string としてシンボルを指定するには、そのシンボルの [型] フィールドを stringtype(n) に設定します。string のテキストをバッファーより短くすることはできますが、string の長さがバッファー サイズを超えると、string 内のテキストは切り捨てられます。たとえば、前述のチャート内のシンボル output[型] プロパティが stringtype(10) である場合、ステート On 内の値は切り捨てられて "All system" になります。

[string 打ち切りチェック] パラメーターを有効にすることで、string が stringtype(n) で指定された長さを超えたときにシミュレーションを停止するか、警告を出力するかを選択できます。

string 打ち切りチェック説明
エラーシミュレーションはエラーで停止します。
警告string は切り捨てられます。シミュレーションは警告を表示して続行します。
なしstring は切り捨てられます。シミュレーションは、エラーや警告を表示せずに続行します。

メモ

C や C++ とは異なり、Stateflow は、エスケープ シーケンスをリテラル文字として解釈します。たとえば、string "\n" に含まれている文字はバックスラッシュと n の 2 文字であり、1 つの改行文字ではありません。

アクション言語として MATLAB と C を使用するチャートの違い

アクション言語として C を使用するチャートと MATLAB® を使用するチャートの主な違いには、以下があります。

  • MATLAB をアクション言語として使用するチャートは、二重引用符で囲まれた string のみをサポートします。C をアクション言語として使用するチャートでは、string に二重引用符または一重引用符を使用できます。

  • string が一致した場合、MATLAB をアクション言語として使用するチャートの strcmp1 (true) を返します。C をアクション言語として使用するチャートの strcmp0 を返します。

  • MATLAB をアクション言語として使用するチャートの strcmp は boolean を返します。C をアクション言語として使用するチャートの strcmp は double を返します。

  • string の長さを返すには、アクション言語として MATLAB を使用するチャートでは strlength を使用し、C を使用するチャートでは strlen を使用します。

  • string を連結するには、アクション言語として MATLAB を使用するチャートでは + を使用し、C を使用するチャートでは strcat を使用します。

  • MATLAB をアクション言語として使用するチャートでは、str2double を使用すると出力変数が強制的に実数/複素数になります。

  • MATLAB をアクション言語として使用するチャートは、><== などの比較演算をすべてサポートします。

制限

パラメーター データが string であってはなりません。

アクション言語として MATLAB を使用するチャートには、以下の制限があります。

  • 定数データが string であってはなりません。

  • 以下の演算子はサポートされません。

    • strcat

    • extract

    • extractBetween

    • sscanf

    • compose

    • append

    • pad

    • count

    • sfprint

  • 構造体には以下の演算子のみを使用できます。

    • isstring

    • strcmp

    • string

    • strlength

    Stateflow の構造体の詳細については、Stateflow 構造体を介したバス信号へのアクセスを参照してください。

参考

| | | | | | | |

関連するトピック