ОШИБКА при использовании OutputFcn — VarargoutNotCell

у меня есть файл мата и графический интерфейс, работающий без сбоев в командном окне Matlab, но когда я его скомпилировал, он показывает ошибку:

??? Error using ==> charms_OutputFcn
variable output array 'varargout' must be a cell array.
Error in ==> gui_mainfcn 248
Error in ==> charms at 40

MATLAB:VarargoutNotCell
Warning:1 visible figure(s) exist at MCR termination

моя строка 40 выглядит так:

  [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

как я могу решить это, спасибо.


person Mary Ann    schedule 05.03.2012    source источник


Ответы (2)


Что-то вроде этого:

varargout = cell(1,nargout);
[varargout{:}] = gui_mainfcn(gui_State, varargin{:});

Я думаю, что функция Matlab deal является примером прототипа для такого рода операций. edit deal чтобы увидеть, как это сделали Mathworks.

person Pursuit    schedule 06.03.2012

Во-первых, окружающий {} должен быть удален: я удивлен, что он вообще работает!

Во-вторых, вам нужно инициализировать varargout, чтобы он был массивом ячеек правильного размера, используя команду cell.

person Nzbuu    schedule 05.03.2012
comment
извините за неправильный пост, на самом деле у него нет окружения {} я отредактировал пост. как я могу инициализировать его для массива правильного размера, можете ли вы привести пример. Спасибо за ответ - person Mary Ann; 06.03.2012