Можете ли вы выполнить отложенный набор (: = в Mathematica) в Matlab?

Итак, я недавно перешел с Mathematica на Matlab, и хотя в Matlab есть большинство полезных функций Mathematica, я не могу понять, как для выполнения эквивалента отложенной операции набора Mathematica ': =', которая лениво присваивает переменной значение.

Например, в Mathematica:

y = 2;

x: = y;

] y = 3;

x

даст значение x как 3, тогда как единственный способ добиться такого же поведения в Matlab - это:

y = 2;

x = @ () (y);

y = 3;

x ()

, который, хотя технически отвечает на мой вопрос, представляет собой довольно специальную работу, требующую обработки x как функции.

Так есть ли более естественный способ сделать это - Matlab?

РЕДАКТИРОВАТЬ:

мое специальное решение работает только тогда, когда y является полем класса дескриптора, я исключил это из кода для ясности (это должно быть someclass.y). Желательно, чтобы в ответе на мой вопрос не было этого ограничения, но я бы все равно принял его, если бы оно было.

5
задан zergylord 29 July 2011 в 21:53
поделиться