Переменная в рабочей области Matlab, которую можно использовать из любой функции, не передавая ее в качестве аргумента - PullRequest
1 голос
/ 24 августа 2011

Я запускаю оптимизацию в MATLAB с помощью optimtool.

Я определил функцию "Find (x)", которая принимает в качестве аргумента только переменную x.

Внутри моей функции я вызываюдругая функция, которая дает мне матрицу трехмерных точек.Я называю эту матрицу p, и ее размер равен 200 x 3.

Я хочу избегать одного и того же вычисления p каждый раз, поскольку оно не меняется, когда инструмент оптимизации запускает функцию.

Как я могу сделать вычисление p один раз в моей рабочей области, и моя функция использует это p без вычисления?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 24 августа 2011

Используйте переменную PERSISTENT в вашей функции.Они рассчитываются только при первом использовании и сохраняются до следующего выполнения функции.

0 голосов
/ 25 августа 2011

Если я правильно понимаю, вы можете использовать assignin (), чтобы сделать переменную постоянной в рабочей области, в которой вы находитесь. Проверьте это с помощью функции справки MATLAB.Вы также можете сохранить его как файл .mat в вашем домашнем каталоге и загрузить в начале вызова функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...