matlab中数组向gui的传递

matlab中数组向gui的传递,matlab,Matlab,我想将一个数组传递给gui,并在轴上显示该数组的每个元素…元素是图像的文件名…我已经编写了一段代码…这是我的xyz.m文件,我想从中将数组“result”传递给gui result\u image.m result_image(result); 在gui的开头,我写道 result = varargin{1}; handles.output = hObject; % Update handles structure guidata(hObject, handles); %axes(handl

我想将一个数组传递给gui,并在轴上显示该数组的每个元素…元素是图像的文件名…我已经编写了一段代码…这是我的xyz.m文件,我想从中将数组“result”传递给gui result\u image.m

result_image(result);
在gui的开头,我写道

result = varargin{1};
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);
%axes(handles.axes1);
%imshow(im2fn);
for jj = 1:length(result)
axes(handles.axesjj);
imshow(result(jj));
我作为str2func收到一个错误 无效的函数名“”
我不知道这里的“”是什么,而且我在行结果_图像(结果)上得到了错误
请帮帮我

如果您看一下,它将详细告诉您如何向UI添加输入参数。事实上,这比简单地将
varargin
添加到
OpeningFcn
参数要复杂一些。原因是您必须编辑以“请勿编辑”:-)开头的代码位

您必须添加一些代码,以允许它确定不应该运行代码
gui\u State.gui\u Callback=str2func(varargin{1})。通常,这段代码允许外部访问文件中的函数(即UI calbacks),但因为它位于
if
语句
if nargin&&ischar(varargin{1})
中,当您向UI传递一个字符串参数时,它认为您试图获取文件中某个函数的句柄,并对传递给它的空字符串(位于
varargin{1}
中)调用
str2func

所以这就是它不起作用的原因。您可能只需使用
varargin{2}
作为输入参数,并使用
result\u image([],result)
打开UI,即可解决此问题,这样
ischar(varargin{1})
为false。为了使它更加健壮,您可能应该更改

if nargin && ischar(varargin{1})

如果nargin>0&&nargin<2&&ischar(varargin{1})

请注意,您首先给它传递了一个空字符串,这可能表明您的代码中有一个bug打开了UI(即,生成
结果的任何东西)

我不知道它是被否决的,我在matlab中不知道太多,所以请证明原因。。。
if nargin > 0 && nargin < 2 && ischar(varargin{1})