登录论坛

查看完整版本 : [求助]点击fig文件操作没有反映,在matlab里GUI打开文件后可以操作


cyklucifer
2008-11-04, 22:17
程序如下:比较粗糙文件名为Untitled...
function varargout = untitled(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled_OpeningFcn, ...
'gui_OutputFcn', @untitled_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
varargout{1:nargout} = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end


function untitled_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;


guidata(hObject, handles);

function varargout = untitled_OutputFcn(hObject, eventdata, handles)

varargout{1}= handles.output;



function varargout =pushbutton1_Callback(h, eventdata, handles, varargin)

TRD = str2double(get(handles.TRdistance,'String'));
N = str2double(get(handles.n,'String'));
D0 = str2double(get(handles.d0,'String'));
EN = str2double(get(handles.ExampleNumber,'String'));
SIGMA = str2double(get(handles.Sigma,'String'));


% Calculate data
n1=normrnd(0,SIGMA,[1,EN]);%生成100个高斯随机变量 normrnd(0,1,[1 5])
y=(10*N*log(TRD/D0));
y1=y+n1*10;

% Create frequency plot
axes(handles.axes2)

for i=1:1:EN
plot(TRD(1,i),y1',':db');
hold on;
end
title('对数阴影正态分布');

xlabel('t-r 距离');
ylabel('PathLoss');
set(handles.axes2,'XMinorTick','on')
grid on


在外面点击fig文件后 弹出的操作界面没有办法运行不出结果并且报错
open('D:\MATLAB6p5\work\untitled.fig')
??? Attempt to reference field of non-structure array 'handles'.

Error in ==> D:\MATLAB6p5\work\untitled.m (pushbutton1_Callback)
On line 41 ==> TRD = str2double(get(handles.TRdistance,'String'));

Error in ==> D:\MATLAB6p5\toolbox\matlab\uitools\gui_mainfcn.m
On line 66 ==> feval(varargin{:});

Error in ==> D:\MATLAB6p5\work\untitled.m
On line 20 ==> gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

在matlab->new->GUI 后运行会出结果 但是也有报错

Index exceeds matrix dimensions.

Error in ==> D:\MATLAB6p5\work\untitled.m (pushbutton1_Callback)
On line 57 ==> plot(TRD(1,i),y1',':db');

Error in ==> D:\MATLAB6p5\toolbox\matlab\uitools\gui_mainfcn.m
On line 66 ==> feval(varargin{:});

Error in ==> D:\MATLAB6p5\work\untitled.m
On line 20 ==> gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.