Неопределенная функция или переменная в MATLAB - PullRequest
1 голос
/ 01 апреля 2012

У меня проблема с запуском моей основной функции в MATLAB (основная программа и вызов других функций). Пытаясь запустить его, я получаю сообщение об ошибке "Неопределенная функция или переменная 'max_x_address'". Но, как вы можете видеть ниже, он был объявлен глобальным. Это действительно беспокоит меня, поэтому любая помощь будет принята с благодарностью. (Нужно ли мне модифицировать мой файл pathdef.m? Это то, что говорит поиск и устранение неисправностей в MATLAB, но я выполнил некоторые шаги, но это не помогло.)
Ниже приведен скелет программы:

function Adaptive_Information
global HUBS, max_x_address, max_y_address;
.
.
max_x_address = 10;
.
.
end

Ответы [ 2 ]

4 голосов
/ 01 апреля 2012

Вы должны объявить его глобальным в каждом контексте, который будет его использовать.То есть добавьте:

global max_x_address

В начало каждой функции, которая будет использовать max_x_address, плюс базовое рабочее пространство (при необходимости).

2 голосов
/ 08 мая 2014

На самом деле строка

global HUBS, max_x_address, max_y_address;

не объявляет три глобальные переменные.Запятая - это выражение или разделитель выражений в Matlab, как и EOL или точка с запятой.Таким образом, Matlab читает выше, как

global HUBS
max_x_address
max_y_address;

Так что он делает, чтобы объявить HUBS глобальным.Затем он пытается извлечь значение max_x_address и распечатать его.Наконец, он извлекает значение max_y_address и выбрасывает его.

Правильный синтаксис для объявления более одной глобальной переменной - разделять их пробелами (см. Также документацию):

глобальные HUBS max_x_address max_y_address

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