我想将数组传递给gui并在轴上显示该数组的每个元素...元素是图像的文件名...我写了一段代码......这是我的xyz.m我希望将数组“result”传递给gui result_image.m
的文件result_image(result);
在我写的gui的开_fn中......
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
功能名称无效''
我不知道这里是什么,而且我在线上得到错误result_image(结果);
请帮帮我!
答案 0 :(得分:0)
如果查看this,它会详细告诉您如何向UI添加输入参数。事实上,它比简单地向varargin
参数添加OpeningFcn
要复杂一些。原因是您必须编辑以DO NOT EDIT
开头的代码: - )
您必须添加一些代码,以确定它不应运行代码gui_State.gui_Callback = str2func(varargin{1});
。通常,这段代码允许外部访问文件中的函数(即UI回调),但因为它位于if
语句if nargin && ischar(varargin{1})
内,当您将参数传递给UI时,这是一个字符串,它认为你正在尝试获取文件中某个函数的句柄,并在传递它的空字符串上调用str2func
(在varargin{1}
中)。
这就是为什么它不起作用。您可以通过使用varargin{2}
作为输入参数来解决此问题,并使用result_image([], result)
打开您的UI,以便ischar(varargin{1})
为false。为了使它更健壮,你应该改变
if nargin && ischar(varargin{1})
到
if nargin > 0 && nargin < 2 && ischar(varargin{1})
请注意,您首先将空字符串传递给它的事实可能表示您的代码中存在打开UI的错误(即生成result
的任何内容)。