array.m
上传用户:szahd2008
上传日期:2020-09-25
资源大小:1275k
文件大小:15k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  1. function varargout = array(varargin)
  2. % ARRAY M-file for array.fig
  3. %      ARRAY, by itself, creates a new ARRAY or raises the existing
  4. %      singleton*.
  5. %
  6. %      H = ARRAY returns the handle to a new ARRAY or the handle to
  7. %      the existing singleton*.
  8. %
  9. %      ARRAY('CALLBACK',hObject,eventData,handles,...) calls the local
  10. %      function named CALLBACK in ARRAY.M with the given input arguments.
  11. %
  12. %      ARRAY('Property','Value',...) creates a new ARRAY or raises the
  13. %      existing singleton*.  Starting from the left, property value pairs are
  14. %      applied to the GUI before array_OpeningFunction gets called.  An
  15. %      unrecognized property name or invalid value makes property application
  16. %      stop.  All inputs are passed to array_OpeningFcn via varargin.
  17. %
  18. %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
  19. %      instance to run (singleton)".
  20. %
  21. % See also: GUIDE, GUIDATA, GUIHANDLES
  22. % Edit the above text to modify the response to help array
  23. % Last Modified by GUIDE v2.5 13-Jun-2003 14:44:11
  24. % Begin initialization code - DO NOT EDIT
  25. gui_Singleton = 1;
  26. gui_State = struct('gui_Name',       mfilename, ...
  27.                    'gui_Singleton',  gui_Singleton, ...
  28.                    'gui_OpeningFcn', @array_OpeningFcn, ...
  29.                    'gui_OutputFcn',  @array_OutputFcn, ...
  30.                    'gui_LayoutFcn',  [] , ...
  31.                    'gui_Callback',   []);
  32. if nargin & isstr(varargin{1})
  33.    gui_State.gui_Callback = str2func(varargin{1});
  34. end
  35. if nargout
  36.    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
  37. else
  38.    gui_mainfcn(gui_State, varargin{:});
  39. end
  40. % End initialization code - DO NOT EDIT
  41. % --- Executes just before array is made visible.
  42. function array_OpeningFcn(hObject, eventdata, handles, varargin)
  43. % This function has no output args, see OutputFcn.
  44. % hObject    handle to figure
  45. % eventdata  reserved - to be defined in a future version of MATLAB
  46. % handles    structure with handles and user data (see GUIDATA)
  47. % varargin   command line arguments to array (see VARARGIN)
  48. % Choose default command line output for array
  49. handles.output = hObject;
  50. % Update handles structure
  51. guidata(hObject, handles);
  52. % UIWAIT makes array wait for user response (see UIRESUME)
  53. % uiwait(handles.figure1);
  54. % --- Outputs from this function are returned to the command line.
  55. function varargout = array_OutputFcn(hObject, eventdata, handles)
  56. % varargout  cell array for returning output args (see VARARGOUT);
  57. % hObject    handle to figure
  58. % eventdata  reserved - to be defined in a future version of MATLAB
  59. % handles    structure with handles and user data (see GUIDATA)
  60. % Get default command line output from handles structure
  61. varargout{1} = handles.output;
  62. % initialization values
  63. data.Nx = 51 ;
  64. data.Ny = 21 ;
  65. data.Ncirc = 51 ;
  66. data.dolxr = 0.5 ;
  67. data.dolyr = 0.5 ;
  68. data.theta0 = 20 ;
  69. data.phi0 = 30 ;
  70. data.nbits = -1 ;
  71. data.winchoice = 1 ; % 1=none, 2=Hamming, 3=Hanning, 4=Kaiser, 5=Blackman
  72. data.arraychoice = 1 ; % 1=rectangular, 2=circular, 3 = triangular
  73. set(handles.Nx,'String', num2str(51)) ;
  74. set(handles.Ny,'String', num2str(21)) ;
  75. set(handles.Ncirc,'String', num2str(51)) ;
  76. set(handles.dolxr,'String', num2str(0.5)) ;
  77. set(handles.dolyr,'String', num2str(0.5)) ;
  78. set(handles.theta0,'String', num2str(20)) ;
  79. set(handles.phi0,'String',num2str(30)) ;
  80. set(handles.nbits,'String',num2str(-1)) ;
  81. set(handles.Nx,'Enable','on');        
  82. set(handles.Ny, 'Enable','on') ;
  83. set(handles.Ncirc,'Enable','off');
  84.       
  85. % --- Executes during object creation, after setting all properties. function Nx_CreateFcn(hObject, eventdata, handles) % hObject    handle to Nx (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    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Nx_Callback(hObject, eventdata, handles) % hObject    handle to Nx (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 Nx as text %        str2double(get(hObject,'String')) returns contents of Nx as a double
  86. % --- Executes during object creation, after setting all properties. function Ny_CreateFcn(hObject, eventdata, handles) % hObject    handle to Ny (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    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Ny_Callback(hObject, eventdata, handles) % hObject    handle to Ny (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 Ny as text %        str2double(get(hObject,'String')) returns contents of Ny as a double
  87. % --- Executes during object creation, after setting all properties.
  88. function Ncirc_CreateFcn(hObject, eventdata, handles)
  89. % hObject    handle to Ncirc (see GCBO)
  90. % eventdata  reserved - to be defined in a future version of MATLAB
  91. % handles    empty - handles not created until after all CreateFcns called
  92. % Hint: edit controls usually have a white background on Windows.
  93. %       See ISPC and COMPUTER.
  94. if ispc
  95.     set(hObject,'BackgroundColor','white');
  96. else
  97.     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
  98. end
  99. function Ncirc_Callback(hObject, eventdata, handles)
  100. % hObject    handle to Ncirc (see GCBO)
  101. % eventdata  reserved - to be defined in a future version of MATLAB
  102. % handles    structure with handles and user data (see GUIDATA)
  103. % Hints: get(hObject,'String') returns contents of Ncirc as text
  104. %        str2double(get(hObject,'String')) returns contents of Ncirc as a double
  105. % --- Executes during object creation, after setting all properties. function dolxr_CreateFcn(hObject, eventdata, handles) % hObject    handle to dolxr (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    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function dolxr_Callback(hObject, eventdata, handles) % hObject    handle to dolxr (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 dolxr as text %        str2double(get(hObject,'String')) returns contents of dolxr as a double
  106. % --- Executes during object creation, after setting all properties. function dolyr_CreateFcn(hObject, eventdata, handles) % hObject    handle to dolyr (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    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function dolyr_Callback(hObject, eventdata, handles) % hObject    handle to dolyr (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 dolyr as text %        str2double(get(hObject,'String')) returns contents of dolyr as a double
  107. % --- Executes during object creation, after setting all properties. function theta0_CreateFcn(hObject, eventdata, handles) % hObject    handle to theta0 (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    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function theta0_Callback(hObject, eventdata, handles) % hObject    handle to theta0 (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 theta0 as text %        str2double(get(hObject,'String')) returns contents of theta0 as a double
  108. % --- Executes during object creation, after setting all properties. function phi0_CreateFcn(hObject, eventdata, handles) % hObject    handle to phi0 (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     set(hObject,'BackgroundColor','white'); else     set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function phi0_Callback(hObject, eventdata, handles) % hObject    handle to phi0 (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 phi0 as text %        str2double(get(hObject,'String')) returns contents of phi0 as a double
  109. % --- Executes during object creation, after setting all properties. function nbits_CreateFcn(hObject, eventdata, handles) % hObject    handle to nbits (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    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function nbits_Callback(hObject, eventdata, handles) % hObject    handle to nbits (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 nbits as text %        str2double(get(hObject,'String')) returns contents of nbits as a double
  110. % --- Executes on button press in PlotButton. function PlotButton_Callback(hObject, eventdata, handles) % hObject    handle to PlotButton (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data (see GUIDATA)
  111. Nx = str2num(get(handles.Nx, 'String')) ;
  112. Ny = str2num(get(handles.Ny, 'String')) ;
  113. Ncirc = str2num(get(handles.Ncirc, 'String')) ;
  114. dolxr = str2num(get(handles.dolxr, 'String')) ;
  115. dolyr = str2num(get(handles.dolyr, 'String')) ;
  116. theta0 = str2num(get(handles.theta0, 'String')) ;
  117. phi0 = str2num(get(handles.phi0, 'String')) ;
  118. nbits = str2num(get(handles.nbits, 'String')) ;
  119. win_type = get(handles.winlist,'Value') ;
  120. switch win_type
  121.    case 1 
  122.        win = ones(Nx,1)*ones(Ny,1)';
  123.    case 2
  124.        win = hamming(Nx)*hamming(Ny)' ;
  125.    case 3
  126.        win = hanning(Nx)*hanning(Ny)' ;
  127.    case 4
  128.         win = kaiser(Nx,pi)*kaiser(Ny,pi)' ;
  129.    case 5
  130.       win = blackman(Nx)*blackman(Ny)' ;
  131. end       
  132. win_type = get(handles.winlist,'Value') ;
  133. switch win_type
  134.    case 1 
  135.        wincirc = ones(Ncirc,1)*ones(Ncirc,1)';
  136.    case 2
  137.        wincirc = hamming(Ncirc)*hamming(Ncirc)' ;
  138.    case 3
  139.        wincirc = hanning(Ncirc)*hanning(Ncirc)' ;
  140.    case 4
  141.       wincirc = kaiser(Ncirc,pi)*kaiser(Ncirc,pi)' ;
  142.    case 5
  143.       wincirc = blackman(Ncirc)*blackman(Ncirc)' ;
  144. end      
  145. array_type = get(handles.arraylist,'Value') ;
  146. switch array_type
  147.    case 1
  148.       [pattern] = rect_array(Nx, Ny, dolxr, dolyr, theta0, phi0, 1, win, nbits);
  149.    case 2
  150.       [pattern,amn] = circ_array(Ncirc, dolxr, dolyr , theta0, phi0 , 1 ,wincirc, nbits);      
  151. end
  152. % --- Executes on button press in ExitButton. function ExitButton_Callback(hObject, eventdata, handles) % hObject    handle to ExitButton (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data (see GUIDATA)
  153. close all
  154. clear all
  155. % --- Executes during object creation, after setting all properties. function winlist_CreateFcn(hObject, eventdata, handles) % hObject    handle to winlist (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows. %       See ISPC and COMPUTER. if ispc    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in winlist. function winlist_Callback(hObject, eventdata, handles) % hObject    handle to winlist (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns winlist contents as cell array %        contents{get(hObject,'Value')} returns selected item from winlist
  156. % --- Executes during object creation, after setting all properties. function arraylist_CreateFcn(hObject, eventdata, handles) % hObject    handle to arraylist (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows. %       See ISPC and COMPUTER. if ispc    set(hObject,'BackgroundColor','white'); else    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end
  157. % --- Executes on selection change in arraylist. function arraylist_Callback(hObject, eventdata, handles) % hObject    handle to arraylist (see GCBO) % eventdata  reserved - to be defined in a future version of MATLAB % handles    structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns arraylist contents as cell array %        contents{get(hObject,'Value')} returns selected item from arraylist
  158. array_type = get(handles.arraylist,'Value') ;
  159. switch array_type
  160.    case 1  % rectangular
  161.       set(handles.Nx,'Enable','on');        
  162.       set(handles.Ny, 'Enable','on') ;
  163.       set(handles.Ncirc,'Enable','off');
  164.       
  165.   case 2  % circular      
  166.       set(handles.Nx,'Enable','off');        
  167.       set(handles.Ny, 'Enable','off') ;
  168.       set(handles.Ncirc,'Enable','on');
  169. end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%