在GUI matlab中运行函数

时间:2013-06-18 16:53:30

标签: matlab user-interface

继续我与GUI的斗争,我遇到了另一个障碍。

我已经成功创建了一个按钮,可以将文件作为字符串打开,并将其放在我的GUI中的文本框中。

 [filename, pathname] = ...
     uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');

set(handles.Textbox1, 'string', fullfile(pathname,filename));

但是现在我似乎无法在获取的文件上使用函数。我试过做

  str = get(handles.Textbox1,'string');
Histogram(str); %Histogram is a function that I created.

但我得到以下错误

  

???使用==>时出错直方图输入参数太多。

     

==>中的错误VarunGUI> pushbutton2_Callback at 94 Histogram(str);

     

==>中的错误gui_mainfcn at 96           feval(varargin {:});

     

==>中的错误VarunGUI在42岁       gui_mainfcn(gui_State,varargin {:});

     

==>中的错误   @(hObject,EVENTDATA)VarunGUI( 'pushbutton2_Callback',hObject,EVENTDATA,guidata(hObject))

     

???评估uicontrol回调时出错

我的代码是用来调用函数,还是函数本身?我无法理解如何更改函数以处理被调用的图像,因此这可能是我的问题,该函数从以下代码开始。

function Histogram
clear;
clc;
fid = fopen('');
myimage = fread(fid, [512, 683], '*uint8');
fclose(fid);

我是否需要在''中使用某个变量来使GUI以我希望的方式运行?问题有点长,但请告诉我,如果您需要查看其他任何内容以帮助我,任何指导或提示都会很棒。谢谢!

3 个答案:

答案 0 :(得分:3)

您的Histogram函数没有输入,因此在您调用时失败:Histogram(str)

答案 1 :(得分:2)

问题在于调用Histogram并将其传递给str

Histogram(str)

但是你没有定义Histogram来预期输入:

function Histogram

你需要的是这样的东西:

function Histogram(str)

% do something with str

答案 2 :(得分:1)

我得到了你们所有人!

将直方图功能更改为:(字面上复制并粘贴下面的内容)

function Histogram(str) %Add input argument
%clear %DO NOT USE CLEAR in a function, the benefit of using a function is you don't have to %clear anything :)
clc;
fid = fopen(str); %Use input argument
myimage = fread(fid, [512, 683]); %take off *uint8
fclose(fid);

阅读MATLAB的文档,这太棒了,并且可以让你看到为什么fread和uint8不会在几秒钟内完成(严重不到20秒会给你答案)它也会解决你的所有问题你遇到的其他非常基本的问题。