それで、私は最近 Mathematica から Matlab に変換しました。Matlab は Mathematica の便利な機能のほとんどを備えていますが、Mathematica の遅延集合操作「:=」に相当するものを実行する方法がわかりません。怠惰なファッション。
たとえば、Mathematica では次のようになります。
y = 2;
x := y;
y = 3;
バツ
x の値は 3 になりますが、Matlab でこれと同じ動作を得る唯一の方法は次のとおりです。
y = 2;
x = @()(y);
y = 3;
バツ()
技術的には私の質問に答えていますが、これは非常にアドホックな回避策であり、x を関数として扱う必要があります。
これを行うためのより自然な方法はMatlabですか?
編集:
私のアドホック ソリューションは、y がハンドル クラスのフィールドである場合にのみ機能します。わかりやすくするために、これをコードから除外しました (someclass.y にする必要があります)。私の質問への回答にはこの制限がないことが望ましいですが、制限がある場合でも受け入れます。