【问题标题】:Running Functions in GUI matlab在 GUI matlab 中运行函数
【发布时间】:2013-06-18 16:53:30
【问题描述】:

继续我与 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 中的错误为 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 以我想要的方式运行?问题有点长,但请告诉我您是否需要查看其他任何内容以帮助我,任何指导或提示都会很棒。谢谢!

【问题讨论】:

  • 您是否尝试过使用dbstop if error 并找出哪里可以看到奇怪的东西?

标签: matlab user-interface


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你的问题是调用Histogram并传递它str

    Histogram(str)
    

    但您没有定义 Histogram 来期待输入:

    function Histogram
    

    你需要的是这样的:

    function Histogram(str)
    
    % do something with str
    

    【讨论】:

    • @schorsch 我不完全确定我会如何“定义直方图以期望输入”,就像你说的那样。
    • @m_power ...调试Matlab ...熟能生巧;-)
    • @user2475404 看我的回答。
    • @user2475404 :您希望Histogramstr 做什么?
    • 好吧,Histogram 函数应该创建一个带有特定参数的直方图。
    【解决方案3】:

    你们都知道了!

    将您的直方图函数更改为:(字面意思是复制并粘贴下面的内容)

    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 秒就会给您答案),它还可以解决您的所有问题您遇到的其他非常基本的问题。

    【讨论】:

    • 阅读某人的想法,可能......您可以将这个答案复制/粘贴到可能正在形成的新问题中
    • 我会删除我新提出的问题,您是救命稻草,谢谢先生。
    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2014-04-22
    • 2019-08-30
    相关资源
    最近更新 更多