このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
このトピックでは,関数呼び出しによって作成された一時変数にドットインデックスを付ける方法を説明します。"一時変数"は,関数呼び出しの結果が,大きな式で中間変数として使用される場合に作成されます。式内の関数呼び出しの結果が一時的であるのは,そこで作成される変数が短期間のみ存在し,実行後はMATLAB®ワークスペースに保存されないためです。例としては式.prop myFunction (x)
があります。これは,引数x
を指定してmyFunction
を呼び出した後,結果の道具
プロパティを返します。任意のタイプの関数(無名関数,ローカル関数,入れ子関数,またはプライベート関数)をこの方法で呼び出すことができます。
以下の関数を想定します。
函数y = struct(struct(x))“战场”, x);结束
この関数は,在战场上
という名前のフィールドを1つもつ構造体を作成し,そのフィールドに値を代入します。次のコマンドを使ってこの関数を呼び出し,値1を含むフィールドをもつ構造体を作成できます。
myStruct (1)
ans = struct with fields: Afield: 1
しかし,フィールド値を直接返す場合は,次のコマンドを使って関数呼び出しの結果にインデックスを付けることができます。
myStruct(1)。在战场上
ans = 1
このコマンドの実行後,コマンドmyStruct (1)
によって作成された一時構造体は存在しなくなり,MATLABはフィールド値のみを返します。概念的にこの使用法は,構造体を作成し,インデックスを付け,その後削除することと同じです。
S =结构(“战场”1);S.Afield清晰年代
MATLABは,.prop foo (arg)
のような,関数呼び出しの結果に対するドットインデックスをサポートしています。関数呼び出しの結果に対する他の形式のインデックス付け(小かっこを使用したfoo (arg) (2)
や,中かっこを使用したfoo (arg) {2}
など)はサポートされていません。コマンドが成功するには,以下の条件を満たしていなければなりません。
foo (__arg1、最长,…)
のように,小かっこを使用して関数が呼び出されている。
関数は,ドットインデックスが定義されている変数(構造体,桌子,オブジェクトなど)を返す。
ドットインデックスの添字が有効である。
MATLABは,ドットインデックスの定義されていない変数が関数から返される場合でも,常に一時変数にドットインデックス演算を適用しようとします。たとえば,魔法(3)
で作成された行列にインデックスを付けようとすると,エラーが返されます。
(3) .field
这种类型的变量不支持点索引。金宝app
一時変数に対するインデックス付けが引き続き可能であるなら,インデックス付けのコマンドを式の最後にさらに追加することができます。たとえば,次の式を考えます。
2)表(兰特(10日).Var1 (3:)
2)表(兰特(10日)
は,Var1
という名前の変数を1つもつ表を作成する。変数には10行2列の行列が含まれます。
2)表(兰德(10)。Var1
はVar1
に含まれる10行2列の行列を返す。
2)表(兰特(10日).Var1 (3:)
はVar1
に含まれる行列の3行目を返す。