Как использовать параметр в качестве глобальной переменной в файле .m? - PullRequest
3 голосов
/ 11 мая 2011

Чтобы четко описать, что я имею в виду, я просто привожу здесь пример:

function y = f(x,a)
global a
y = f1(x);

function y = f1(x)
global a
y = x + a;

Здесь я хочу, чтобы переменная 'a' использовалась в качестве глобальной переменной, которая может вызываться подфункцией 'f1 'для вычисления $ x + a $.(Моя цель - уменьшить преобразование параметров)

Но эта функция не работает, если я не определю новую переменную 'b' для восстановления значения 'a'.

Вопростакое, как я могу сделать 'a' глобальной переменной напрямую, без определения новой переменной?

Ответы [ 2 ]

3 голосов
/ 11 мая 2011

Я бы не рекомендовал вам использовать глобальные переменные, тем более что вы передаете a в функцию f.

Требуемое поведение можно получить без глобальных переменных, но с использованием вложенных функций :

function y = f(x,a)
y = f1(x);
   function y = f1(x)
   y = x + a;
   end
end
0 голосов
/ 11 мая 2011

Вы можете попробовать

a=evalin('base','a');

, чтобы получить значение a из базовой рабочей области. Глобальные переменные, как правило, не рекомендуется.

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