在matlab中将数组传递给gui

时间:2013-04-03 07:31:57

标签: matlab

我想将数组传递给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(结果);
请帮帮我!

1 个答案:

答案 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的任何内容)。