7 Variables

Last-modified: 2025-03-22 (土) 20:42:44

7 変数

変数を使用すると、値に名前を付けて後で参照することができます。すでに多くの例で変数を見てきました。変数の名前は、文字、数字、アンダースコアのシーケンスでなければなりませんが、数字で始まってはなりません。Octave は変数名の長さに制限を設けていませんが、約 30 文字を超える名前の変数を持つことはほとんど役に立ちません。以下はすべて有効な変数名です。

x
x15
__foo_bar_baz__
fucnrdthsucngtagdjb

ただし、__foo_bar_baz__2 つのアンダースコアで始まり、終わるような名前は、Octave の内部使用のために予約されていると解釈されます。Octave のドキュメント化された内部変数と組み込みのシンボリック定数にアクセスする場合を除き、記述するコードではそれらの名前を使用しないでください。

変数名では大文字と小文字が区別されます。記号aと Aは異なる変数です。

変数名は、それ自体が有効な式です。変数の現在の値を表します。変数には、 代入演算子と増分演算子を使用して新しい値が与えられます。代入式を参照してください。

特別な意味を持つ、自動的に作成される変数が 1 つあります。 ans変数には常に、出力がどの変数にも割り当てられなかった最後の計算の結果が含まれます。コードはa = cos (pi)変数 に値 -1 を割り当てますaが、 の値は変更しませんans。ただし、コードはcos (pi) の値をans-1 に設定します。

Octave の変数には固定された型がないので、最初に変数に数値を格納し、後で同じ名前を使用して同じプログラム内で文字列値を保持することができます。変数は、値が与えられる前に使用することはできません。そうするとエラーが発生します。

自動変数: ans
変数に明示的に割り当てられなかった、最後に計算された結果。

例えば、次の表現の後

3^2 + 4^2

が評価されると、返される値はans25 になります。

: tf = isvarname (name)

nameが有効な変数名である 場合は true を返します。

有効な変数名は文字、数字、アンダースコア ("_") で構成され、最初の文字は数字であってはなりません。

: varname = matlab.lang.makeValidName (str)

: varname = matlab.lang.makeValidName (…, "ReplacementStyle", rs)

: varname = matlab.lang.makeValidName (…, "Prefix", pfx)

: [varname, ismodified] = matlab.lang.makeValidName (…)

strから有効な変数名varnameを作成します。

入力str は文字列または文字列のセル配列である必要があります。出力varname は同じ型になります。

有効な変数名は、数字で始まらない文字、数字、アンダースコアのシーケンスです。

この"ReplacementStyle"オプションは無効な文字の処理方法を指定します。許容値は次のとおりです。

"underscore" (default)

すべての無効な文字をアンダースコア ( "_") に置き換えます。

"delete"

無効な文字を削除します。

"hex"

すべての無効な文字を 16 進表現に置き換えます。

空白文字は、の適用前に"ReplacementStyle"常に削除されます。空白の後の小文字は大文字に変更されます。

このオプションは、入力が数字で始まる場合にプレフィックスとして追加する "Prefix"文字列pfxを指定します。pfx自体は有効な変数名である必要があります。デフォルトのプレフィックスはです"x"。

オプションの出力ismodified は、 str内のそれぞれの要素が有効な名前であったかどうかを 示す論理配列です。

: uniqstr = matlab.lang.makeUniqueStrings (str)

: uniqstr = matlab.lang.makeUniqueStrings (str, ex)

: uniqstr = matlab.lang.makeUniqueStrings (str, ex, maxlength)

: [uniqstr, ismodified] = matlab.lang.makeUniqueStrings (…)

文字列のリストから一意の文字列のリストを構築します。

入力str は文字列または文字列のセル配列である必要があります。出力uniqstr は同じ型になります。

このアルゴリズムは、2 番目の文字列にアンダースコア ("_"と数値カウントを追加することで、2 つの文字列を一意にします。

exが文字列または文字列のセル配列の場合、 uniqstr には、 exに関して、またそれら自身間で一意の要素が含まれます 。

exがstrのインデックス配列または論理配列である場合、一意にされた strのサブセットが選択されます。選択されていない要素は変更されません。

オプションの入力maxlength は、 uniqstr内の文字列の最大長を指定します。入力文字列をmaxlengthを超えずに一意にできない場合は、エラーが発生します。

オプションの出力ismodified は、 str内の各要素が一意になるように変更されたかどうかを示す論理配列です。

参照: unique、matlab.lang.makeValidName

: n = namelengthmax ()

MATLAB互換の最大変数名の長さを返します。

Octaveは、長さ2^{31} - 1までの文字列を保存できます。ただし、 MATLABとの互換性を保つために、すべての変数、関数、および構造体のフィールド名は、によって返される長さよりも短くする必要があります namelengthmax。特に、MATLABファイル形式(*。マット) の名前はこの長さに切り捨てられます。

Global Variables
Persistent Variables
Status of Variables