uigetfile из графического интерфейса в Matlab - PullRequest
1 голос
/ 20 января 2012

Я пытаюсь импортировать данные в графический интерфейс и сохранить их в handles. .Mat-файл содержит единственную структуру с именем log со всеми данными в нем. Я сделал кнопку с помощью GUIDE и добавил следующий код:

function loadMatFileButton_Callback(hObject, eventdata, handles)
[FileName,PathName] = uigetfile('*.mat');
loadDataName = fullfile(PathName,FileName);
load(loadDataName); % gives log struct

handles.log = log;

Но при выполнении я получаю эту ошибку:

??? Error using ==> log
Not enough input arguments.

Error in ==> VisualizeData>loadMatFileButton_Callback at 160
handles.log = log;

Это действительно странно. Я попытался отладить его, поставив точку останова после команды load. Когда я вручную набираю handles.log = log в консоли, это работает ... Я не понимаю, что происходит, но это должно быть тривиально.

1 Ответ

0 голосов
/ 20 января 2012

Короче говоря: Not enough input arguments является ключом к тайне. Это означает, что вы используете функцию, а не переменную.


Прежде всего, не используйте log! Это встроенная функция - натуральный логарифм. Конечно, вы можете изменить это, но это плохой стиль.

Очевидно, вы ожидаете, что в вашем коде есть переменная с именем log, а ее нет. Я оставлю это в качестве упражнения для читателя, чтобы выяснить, почему. Подсказка: Проверьте загружаемый файл .mat.

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