Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2007-06-28
帖子: 1
声望力: 0 ![]() |
![]()
下面的程序是用来输出黑体辐射亮度波形的。 需要输入黑体色温和波长范围。
不知道为什么guide编写的程序只能运行一次。 第二次输入新的色温和波长范围后出现错误: Invalid handle object 程序如下: function varargout = simpleguii(varargin) % SIMPLEGUII M-file for simpleguii.fig % SIMPLEGUII, by itself, creates a new SIMPLEGUII or raises the existing % singleton*. % % H = SIMPLEGUII returns the handle to a new SIMPLEGUII or the handle to % the existing singleton*. % % SIMPLEGUII('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in SIMPLEGUII.M with the given input arguments. % % SIMPLEGUII('Property','Value',...) creates a new SIMPLEGUII or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before simpleguii_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to simpleguii_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 simpleguii % Last Modified by GUIDE v2.5 26-Jun-2007 14:45:26 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @simpleguii_OpeningFcn, ... 'gui_OutputFcn', @simpleguii_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 simpleguii is made visible. function simpleguii_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 simpleguii (see VARARGIN) Tc = str2double(get(handles.edit1,'String')); wave = eval(get(handles.edit2,'String')); h = 6.6260693e-34; c = 299792458; k = 1.3806505e-23; c1 = 2*pi*h*c^2; c2 = h*c/k; spdBlackBody = c1 * (1e-9*wave).^-5 ./ (exp(c2./(Tc.* 1e-9*wave)) - 1); axes(handles.wave_axes) plot(wave,spdBlackBody) set(handles.wave_axes,'XMinorTick','on') grid on % Choose default command line output for simpleguii handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes simpleguii wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = simpleguii_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; % --- Executes on button press in plot. function plot_Callback(hObject, eventdata, handles) % hObject handle to plot (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) h = 6.6260693e-34; c = 299792458; k = 1.3806505e-23; c1 = 2*pi*h*c^2; c2 = h*c/k; Tc=handles.edit1; wave=handles.edit2; spdBlackBody = c1 * (1e-9.*wave).^-5 ./ (exp(c2./(Tc.* 1e-9.*wave)) - 1); axes(handles.wave_axes) plot(wave,spdBlackBody) set(handles.wave_axes,'XMinorTick','on') grid on 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) Tc = str2double(get(handles.edit1,'String')) handles.edit1 = Tc guidata(hObject,handles) %NewStrVal = get(hObject,'String') %NewVal = str2double (NewStrVal) %handles.edit1=NewVal %guidata(hObject,handles) % 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) wave = eval(get(handles.edit2,'String')) handles.edit2 = wave guidata(hObject,handles) %NewStrVal=get(hObject,'String'); %NewVal = str2double(NewStrVal); %handles.Wavelength_Input=NewVal; %guidata(hObject,handles); % 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 |
![]() |
![]() |