2017-06-28 142 views
0

美好的一天!每當我嘗試模擬GUI界面時發生錯誤:Matlab中的GUI錯誤

數學錯誤(第42行) gui_mainfcn(gui_State,varargin {:});

在 matlab.graphics.internal.figfile.FigFile錯誤/讀> @(hObject,EVENTDATA)mathmeth( 'pushbutton2_Callback',hObject,EVENTDATA,guidata(hObject)) 錯誤而評估UIControl回調

我不知道這是什麼意思?

反正這是我的計劃:

function varargout = mathmeth(varargin) 
% MATHMETH MATLAB code for mathmeth.fig 
%  MATHMETH, by itself, creates a new MATHMETH or raises the existing 
%  singleton*. 
% 
%  H = MATHMETH returns the handle to a new MATHMETH or the handle to 
%  the existing singleton*. 
% 
%  MATHMETH('CALLBACK',hObject,eventData,handles,...) calls the local 
%  function named CALLBACK in MATHMETH.M with the given input arguments. 
% 
%  MATHMETH('Property','Value',...) creates a new MATHMETH or raises the 
%  existing singleton*. Starting from the left, property value pairs are 
%  applied to the GUI before mathmeth_OpeningFcn gets called. An 
%  unrecognized property name or invalid value makes property application 
%  stop. All inputs are passed to mathmeth_OpeningFcn via varargin. 
% 
%  *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one 
%  instance to run (singleton)". 
% 
% See also: GUIDE, GUIDATA, GUIHANDLES 

% Edit the above text to modify the response to help mathmeth 

% Last Modified by GUIDE v2.5 28-Jun-2017 17:41:51 

% Begin initialization code - DO NOT EDIT 
gui_Singleton = 1; 
gui_State = struct('gui_Name',  mfilename, ... 
        'gui_Singleton', gui_Singleton, ... 
        'gui_OpeningFcn', @mathmeth_OpeningFcn, ... 
        'gui_OutputFcn', @mathmeth_OutputFcn, ... 
        'gui_LayoutFcn', [] , ... 
        'gui_Callback', []); 
if nargin && ischar(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 
% End initialization code - DO NOT EDIT 


% --- Executes just before mathmeth is made visible. 
function mathmeth_OpeningFcn(hObject, eventdata, handles, varargin) 
% This function has no output args, see OutputFcn. 
% hObject handle to figure 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
% varargin command line arguments to mathmeth (see VARARGIN) 

% Choose default command line output for mathmeth 
handles.output = hObject; 

% Update handles structure 
guidata(hObject, handles); 

% UIWAIT makes mathmeth wait for user response (see UIRESUME) 
% uiwait(handles.figure1); 


% --- Outputs from this function are returned to the command line. 
function varargout = mathmeth_OutputFcn(hObject, eventdata, handles) 
% varargout cell array for returning output args (see VARARGOUT); 
% hObject handle to figure 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Get default command line output from handles structure 
varargout{1} = handles.output; 



function edit1_Callback(hObject, eventdata, handles) 
% hObject handle to edit1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit1 as text 
%  str2double(get(hObject,'String')) returns contents of edit1 as a double 


% --- Executes during object creation, after setting all properties. 
function edit1_CreateFcn(hObject, eventdata, handles) 
% hObject handle to edit1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles empty - handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 
%  See ISPC and COMPUTER. 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
    set(hObject,'BackgroundColor','white'); 
end 



function edit2_Callback(hObject, eventdata, handles) 
% hObject handle to edit2 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit2 as text 
%  str2double(get(hObject,'String')) returns contents of edit2 as a double 


% --- Executes during object creation, after setting all properties. 
function edit2_CreateFcn(hObject, eventdata, handles) 
% hObject handle to edit2 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles empty - handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 
%  See ISPC and COMPUTER. 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
    set(hObject,'BackgroundColor','white'); 
end 



function edit3_Callback(hObject, eventdata, handles) 
% hObject handle to edit3 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit3 as text 
%  str2double(get(hObject,'String')) returns contents of edit3 as a double 


% --- Executes during object creation, after setting all properties. 
function edit3_CreateFcn(hObject, eventdata, handles) 
% hObject handle to edit3 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles empty - handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 
%  See ISPC and COMPUTER. 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
    set(hObject,'BackgroundColor','white'); 
end 



function edit4_Callback(hObject, eventdata, handles) 
% hObject handle to edit4 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit4 as text 
%  str2double(get(hObject,'String')) returns contents of edit4 as a double 


% --- Executes during object creation, after setting all properties. 
function edit4_CreateFcn(hObject, eventdata, handles) 
% hObject handle to edit4 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles empty - handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 
%  See ISPC and COMPUTER. 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
    set(hObject,'BackgroundColor','white'); 
end 



function edit5_Callback(hObject, eventdata, handles) 
% hObject handle to edit5 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit5 as text 
%  str2double(get(hObject,'String')) returns contents of edit5 as a double 


% --- Executes during object creation, after setting all properties. 
function edit5_CreateFcn(hObject, eventdata, handles) 
% hObject handle to edit5 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles empty - handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 
%  See ISPC and COMPUTER. 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 
    set(hObject,'BackgroundColor','white'); 
end 

function solve_Callback(hobject,eventdata,handles) 

a = str2double(get(handles,a,'String')); 
b = str2double(get(handles,b,'Strung')); 
c = str2double(get(handles,c,'String')); 
int = num2str(c/b); 
slope = double2str(-a/b); 
set(handles.y, 'String', int); 
set(handles.slope,'String', slope); 
x = 0:10; 
y = c/b - a/b*x; 
axes(handles.axes1); 
plot(x,y); 
xlabel('x'); 
ylabel('y'); 
guidata(hobject,handles); 

請幫幫我!謝謝!

+0

這可能與你的圖標上的按鈕有關,它們叫做「按鈕2」。你可以使用指南並去查看 - >對象瀏覽器,在那裏你可以找到那個按鈕。也許刪除它並創建一個新的,或者只是編輯它的回調。另外,爲什麼你在'solve_Callback'中的'get'方法中有逗號。它不應該是'get(handles.a,'String')'? –

+0

我只是做了你的建議。但它仍然給了我同樣的錯誤。 – Raldenors

回答

0

在您的某個元素中可能存在過時的回調函數。如果使用GUIDE在.fig文件中添加回調函數,然後從.m文件手動刪除回調函數,則會發生這種情況。

查看所有GUIDE元素(使用圖形編輯器)並檢查回調。其中一個在.m文件中沒有適當的實現(我會從pushbutton2開始)。

+0

我遵循你的指示。我從pushbutton2開始。但仍然是我得到的同樣的錯誤。 – Raldenors

+0

我的意思是:在pushbutton2開始搜索。您必須將回調與.m文件中的實現進行比較。查看所有對象並確保實現存在。 也許按鈕2是正確的,然後檢查下一個對象。 – Loamsiada

+0

啊我明白了。但是,圖形編輯器位於哪裏,或者如何查看.m文件中的實現? – Raldenors