4

Matlab には with...end コマンドのようなものがありますか? http://msdn.microsoft.com/en-us/library/wc500chb(v=vs.80).aspx

多くのネストされたデータを含む変数がワークスペースにあります。今、私はいつもこれを入力する必要はありません:

Root.ChildLevel1.A = Root.ChildLevel1.B + Root.ChildLevel1.C

しかし、むしろ次のようなものです:

with Root.ChildLevel1
  A = B + C
end

これは可能ですか?

4

2 に答える 2

3

Matlab でそのような機能を認識していません。
あなたができることは

cur = Root.ChildLevel1;
cur.A = cur.B + cur.C;

編集:
@Nick のコメントによると、がのサブクラスでないRoot.ChildLevel1場合は、次の行を追加する必要があります。 handle

Root.ChildLevel1 = cur;

私もお勧めします

clear cur; 

最後に。

于 2013-02-07T15:36:31.407 に答える
1

この関数をあまり頻繁に使用することはお勧めしませんが、構造体のアンパックを可能にする FEX の貢献を試みたことがあります。

もちろん、計算を行った後に構造体を更新する必要があるため、主に構造体を入力として使用するサブ関数にのみ使用します。

よくわかりませんが、これは私が試したものだと思います:

http://www.mathworks.com/matlabcentral/fileexchange/26216-structure-fields-to-variables

于 2013-02-07T16:44:24.167 に答える