0

我想将一个数组传递给 gui 并在轴上显示该数组的每个元素...这些元素是图像的文件名...我编写了一段代码...这是我的 xyz.m 文件我想将数组“结果”传递给 gui result_image.m

result_image(result);

在我写的gui的opening_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 Invalid function name ''
我不知道这里的 '' 是什么,而且我在 result_image(result);
请帮我!

4

1 回答 1

0

如果您查看内容,它将详细告诉您如何将输入参数添加到您的 UI。事实上,它比简单地添加 avarargin到你的OpeningFcn论点要复杂一些。原因是您必须编辑以单词开头的代码DO NOT EDIT:-)

您必须添加一些代码,使其能够确定不应运行该代码gui_State.gui_Callback = str2func(varargin{1});。通常,这段代码允许外部访问文件中的函数(即 UI 回调),但因为它在if语句内部if nargin && ischar(varargin{1}),当您将参数传递给 UI 时,它会认为您正在尝试获取处理文件中的一个函数并调用str2func您传递给它的空字符串(在 中varargin{1})。

所以这就是为什么它不起作用。您可以简单地通过使用varargin{2}作为您的输入参数并使用打开您的 UI 来解决此问题result_image([], result),所以这ischar(varargin{1})是错误的。为了使它更健壮一点,你可能应该改变

if nargin && ischar(varargin{1})

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

请注意,您首先向它传递了一个空字符串这一事实可能表明您的代码中存在打开 UI 的错误(即,无论生成什么result)。

于 2013-04-03T09:40:36.877 回答