继续我与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以我希望的方式运行?问题有点长,但请告诉我,如果您需要查看其他任何内容以帮助我,任何指导或提示都会很棒。谢谢!
答案 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秒会给你答案)它也会解决你的所有问题你遇到的其他非常基本的问题。