- Timestamp:
- Dec 3, 2010, 12:16:51 PM (14 years ago)
- Location:
- trunk/src
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/civ.m
r147 r150 22 22 function varargout = civ(varargin) 23 23 24 % Last Modified by GUIDE v2.5 27-Mar-2010 13:41:1124 % Last Modified by GUIDE v2.5 01-Dec-2010 23:19:15 25 25 % Begin initialization code - DO NOT EDIT 26 26 gui_Singleton = 1; … … 225 225 end 226 226 227 set(handles.waitbar_1,'Position',[0.946 0.877 0.03 0.001])228 set(handles.waitbar_patch1,'Position',[0.946 0.626 0.03 0.001])229 set(handles.waitbar_civ2,'Position',[0.946 0.406 0.03 0.001])230 set(handles.waitbar_patch2,'Position',[0.946 0.187 0.03 0.001])227 % set(handles.waitbar_1,'Position',[0.946 0.877 0.03 0.001]) 228 % set(handles.waitbar_patch1,'Position',[0.946 0.626 0.03 0.001]) 229 % set(handles.waitbar_civ2,'Position',[0.946 0.406 0.03 0.001]) 230 % set(handles.waitbar_patch2,'Position',[0.946 0.187 0.03 0.001]) 231 231 232 232 %------------------------------------------------------------------------ … … 772 772 773 773 %%%%%% initialize waitbars and RUN button 774 set(handles.waitbar_1,'Position',[0.946 0.876 0.03 0.001])775 set(handles.waitbar_patch1,'Position',[0.946 0.439 0.03 0.001])776 set(handles.waitbar_civ2,'Position',[0.946 0.219 0.03 0.001])777 set(handles.waitbar_patch2,'Position',[0.946 0.0 0.03 0.001])774 % set(handles.waitbar_1,'Position',[0.946 0.876 0.03 0.001]) 775 % set(handles.waitbar_patch1,'Position',[0.946 0.439 0.03 0.001]) 776 % set(handles.waitbar_civ2,'Position',[0.946 0.219 0.03 0.001]) 777 % set(handles.waitbar_patch2,'Position',[0.946 0.0 0.03 0.001]) 778 778 set(handles.RUN, 'Enable','On') 779 779 set(handles.RUN,'BackgroundColor',[1 0 0]) … … 1623 1623 1624 1624 %% initialize the waitbars: TO suppress, waitbar not used 1625 set(handles.waitbar_1,'Position',[0.946 0.876 0.03 0.001])1626 set(handles.waitbar_patch1,'Position',[0.946 0.439 0.03 0.001])1627 set(handles.waitbar_civ2,'Position',[0.946 0.219 0.03 0.001])1628 set(handles.waitbar_patch2,'Position',[0.946 0.0 0.03 0.001])1629 drawnow1625 % set(handles.waitbar_1,'Position',[0.946 0.876 0.03 0.001]) 1626 % set(handles.waitbar_patch1,'Position',[0.946 0.439 0.03 0.001]) 1627 % set(handles.waitbar_civ2,'Position',[0.946 0.219 0.03 0.001]) 1628 % set(handles.waitbar_patch2,'Position',[0.946 0.0 0.03 0.001]) 1629 % drawnow 1630 1630 1631 1631 %% set the list of files and check them 1632 1632 display('checking the files...') 1633 compare=get(handles.compare,'Value');%test for usual PIV (compare=1) or displacement (=2) or stereo PIV (=3)1633 %compare=get(handles.compare,'Value');%test for usual PIV (compare=1) or displacement (=2) or stereo PIV (=3) 1634 1634 [filecell,num1_civ1,num2_civ1,num_a_civ1,num_b_civ1,num1_civ2,num2_civ2,num_a_civ2,num_b_civ2,nom_type_nc]=... 1635 set_civ_filenames(handles, compare,box_test);1635 set_civ_filenames(handles,box_test); 1636 1636 if isempty(filecell)% (error message displayed in fct set_civ_filenames) 1637 1637 return … … 2276 2276 2277 2277 function [filecell,num1_civ1,num2_civ1,num_a_civ1,num_b_civ1,num1_civ2,num2_civ2,num_a_civ2,num_b_civ2,nom_type_nc,file_ref_fix1,file_ref_fix2]=... 2278 set_civ_filenames(handles, compare,box_test)2278 set_civ_filenames(handles,box_test) 2279 2279 %------------------------------------------------------------------------ 2280 2280 filecell=[];%default … … 3956 3956 par.pxcmx='1'; %velocities are expressed in pixel dispalcement 3957 3957 par.pxcmy='1'; 3958 % end 3958 if exist('file_ima','var') 3959 3959 A=imread(file_ima);%read the first image to get the size 3960 3960 sizim=size(A); 3961 3961 par.npx=num2str(sizim(2)); 3962 3962 par.npy=num2str(sizim(1)); 3963 end 3963 3964 %time=get(handles.RootName,'UserData'); %get the set of times 3964 3965 par.gridname=get(handles.grid_civ1,'String'); … … 4595 4596 4596 4597 4597 4598 4598 % --- Executes on button press in TestCiv1. 4599 function TestCiv1_Callback(hObject, eventdata, handles) 4600 test_civ1=get(handles.TestCiv1,'Value'); 4601 if test_civ1 4602 [filecell,num1_civ1,num2_civ1,num_a_civ1,num_b_civ1,num1_civ2,num2_civ2,num_a_civ2,num_b_civ2,nom_type_nc,file_ref_fix1,file_ref_fix2]=... 4603 set_civ_filenames(handles,[1 0 0 0 0 0]); 4604 Data.ListVarName={'ny','nx','A'}; 4605 Data.VarDimName={'ny','nx',{'ny','nx'}}; 4606 Data.A=imread(filecell.ima1.civ1{1}); 4607 Data.ny=[size(Data.A,1) 1]; 4608 Data.nx=[1 size(Data.A,2)]; 4609 hh=view_field(Data); 4610 ViewData=get(hh,'UserData'); 4611 ViewData.axes3.B=imread(filecell.ima2.civ1{1}); 4612 set(hh,'UserData',ViewData) 4613 end 4614 4615 4616 4617 4618 4619 -
trunk/src/get_field.m
r147 r150 172 172 inputfile=get(handles.inputfile,'String'); 173 173 Field=nc2struct(inputfile);% reads the whole field 174 if isfield(Field,'Txt') 175 msgbox_uvmat('ERROR',Field.Txt) 176 else 174 177 set(handles.figure1,'UserData',Field); 175 178 Field_input(eventdata,handles,Field); 179 end 176 180 177 181 %------------------------------------------------------------------------ … … 811 815 812 816 %------------------------------------------------------------------------ 817 % --- Function for plotting the current subfield 813 818 function plot_get_field(SubField,handles) 814 819 %------------------------------------------------------------------------ … … 816 821 val=get(handles.list_fig,'Value'); 817 822 if strcmp(list_fig{val},'uvmat') 818 % set(handles.figure1,'Name','uvmat_field')819 823 set(handles.inputfile,'Enable','off')% desactivate the input file edit box 820 % set(handles.list_fig,'Visible','off')%821 824 set(handles.RUN,'Visible','off')% RUN button not visible (passive mode, get_field used to define the field for uvamt) 822 825 set(handles.MenuOpen,'Visible','off') … … 826 829 view_field(SubField) 827 830 else 828 hfig=str2 num(list_fig{val});% chosen figure number from tyhe GUI829 if is empty(hfig)831 hfig=str2double(list_fig{val});% chosen figure number from tyhe GUI 832 if isnan(hfig) 830 833 hfig=figure; 831 834 list_fig=[list_fig;num2str(hfig)]; … … 1075 1078 % update dimensions; 1076 1079 if isfield(Field,'ListDimName') 1077 Field.ListDimName1078 1080 Tabdim={};%default 1079 1081 if isequal(index,1)%list all dimensions -
trunk/src/mouse_down.m
r102 r150 33 33 UvData=get(huvmat,'UserData'); 34 34 MouseAction='none'; %default 35 testzoom=get(guihandles.zoom,'Value');% get the mouse action from the uvmat GUI: options: 35 currentfig=hObject; 36 hhcurrentfig=guidata(currentfig); 37 test_zoom=get(hhcurrentfig.zoom,'Value') 38 %test_zoom=get(guihandles.zoom,'Value');% get the mouse action from the uvmat GUI: options: 36 39 if isfield(UvData,'MouseAction') 37 40 MouseAction=UvData.MouseAction;% get the mouse action from the uvmat GUI: options: 38 41 end 39 42 40 test_create=~test zoom && (isequal(MouseAction,'create_object') || isequal(MouseAction,'create_mask'));43 test_create=~test_zoom && (isequal(MouseAction,'create_object') || isequal(MouseAction,'create_mask')); 41 44 %test_cal=get(handles.cal,'Value'); 42 45 test_cal=strcmp(MouseAction,'calib'); … … 111 114 112 115 % zoom has first priority 113 if test zoom %&& ~test_create && ~test_edit && ~test_edit_vect && exist('xy','var')116 if test_zoom %&& ~test_create && ~test_edit && ~test_edit_vect && exist('xy','var') 114 117 AxeData.Drawing='zoom'; %initiate drawing mode 115 118 AxeData.CurrentObject=[];%unselect objects … … 261 264 262 265 % create calibration points if the GUI geometry_calib is opened, if the main axes axes3 of uvmat has ben selected 263 if ~test zoom && test_cal && ~isempty(haxes) && strcmp(get(haxes,'tag'),'axes3')266 if ~test_zoom && test_cal && ~isempty(haxes) && strcmp(get(haxes,'tag'),'axes3') 264 267 h_geometry_calib=findobj(allchild(0),'Name','geometry_calib'); %find the geomterty_calib GUI 265 268 hh_geometry_calib=guidata(h_geometry_calib); -
trunk/src/mouse_motion.m
r105 r150 28 28 return 29 29 end 30 test_draw=0; 31 test_create=0;%default 32 test_object=0; %default 30 currentfig=hObject; 31 hhcurrentfig=guidata(currentfig); 32 test_zoom=get(hhcurrentfig.zoom,'Value');%test for zoom activated on the current figure 33 test_draw=0;%test for mouse drawing of object, =0 by default 34 test_object=0; %test for object editing or creation 33 35 test_edit=isfield(handles,'edit') && get(handles.edit,'Value');% edit test for mouse shap: an arrow 34 test_zoom_draw=0; %default 35 test_ruler=0; 36 huvmat=findobj(allchild(0),'Name','uvmat');%find the uvmat interface handle 37 hhuvmat=guidata(huvmat); 38 test_zoom=get(hhuvmat.zoom,'Value'); 36 test_zoom_draw=0; % test for zoom drawing 37 test_ruler=0;%test for active ruler 38 test_piv=0;% test for PIV correlation display 39 huvmat=findobj(allchild(0),'tag','uvmat');%find the uvmat interface handle 40 if ~isempty(huvmat) 41 hhuvmat=guidata(huvmat); 42 end 39 43 if ~isempty(huvmat) 40 44 UvData=get(huvmat,'UserData'); 41 45 test_ruler=isfield(UvData,'MouseAction') && isequal(UvData.MouseAction,'ruler'); 42 46 end 43 47 hciv=findobj(allchild(0),'tag','civ');%find the uvmat interface handle 48 if ~isempty(hciv) && strcmp(get(currentfig,'tag'),'view_field') 49 hhciv=guidata(hciv); 50 test_piv =get(hhciv.TestCiv1,'Value'); 51 end 44 52 45 53 %find the current axe 'haxes' and display the current mouse position or uicontrol tag … … 54 62 55 63 pointershape='arrow';% default pointer is an arrow 56 currentfig=hObject; 64 57 65 xy_fig=get(currentfig,'CurrentPoint');% current point of the current figure (gcbo) 58 66 hchild=get(currentfig,'Children');%handles of all objects in the current figure 59 67 60 % loop on all the objects in the current figure and detect whether the mouse is over a plot axes68 %% loop on all the objects in the current figure and detect whether the mouse is over a plot axes 61 69 haxes=[]; 62 70 for ichild=1:length(hchild) … … 65 73 continue 66 74 end%position of the object 67 if xy_fig(1) >=obj_pos(1) & xy_fig(2) >= obj_pos(2)& xy_fig(1) <=obj_pos(1)+obj_pos(3)& xy_fig(2) <= obj_pos(2)+obj_pos(4);75 if xy_fig(1) >=obj_pos(1) && xy_fig(2) >= obj_pos(2)&& xy_fig(1) <=obj_pos(1)+obj_pos(3) && xy_fig(2) <= obj_pos(2)+obj_pos(4); 68 76 htype=get(hchild(ichild),'Type');%type of the crrent child 69 77 %if the mouse is over an axis, look at the data … … 73 81 AxeData=get(haxes,'UserData');% data attached to the axis 74 82 if isfield(AxeData,'Drawing')&& ~isempty(AxeData.Drawing) 75 test_draw=~isequal(AxeData.Drawing,'off'); 83 test_draw=~isequal(AxeData.Drawing,'off');%=1 if mouse drawing of object is active 76 84 end 77 85 test_zoom_draw=test_draw && isequal(AxeData.Drawing,'zoom')&& isfield(AxeData,'CurrentOrigin') && isequal(get(gcf,'SelectionType'),'normal'); … … 80 88 pointershape='crosshair';%set pointer with cross shape (default when mouse is over an axis) 81 89 end 82 if isfield(AxeData,'ListVarName') 83 [CellVarIndex,NbDim,VarType]=find_field_indices(AxeData); 84 if isfield(AxeData,'Mesh') && ~isempty(AxeData.Mesh) 85 text_displ_1=''; 86 text_displ_2=''; 87 text_displ_3=''; 88 text_displ_4=''; 89 for icell=1:numel(CellVarIndex)%look for all physical fields 90 if NbDim(icell)==2 % select 2D field 91 if ~isempty(VarType{icell}.coord_x) && ~isempty(VarType{icell}.coord_y)%case of unstructured data 92 eval(['X=AxeData.' AxeData.ListVarName{VarType{icell}.coord_x} ';']) 93 eval(['Y=AxeData.' AxeData.ListVarName{VarType{icell}.coord_y} ';']) 94 flag_vec=(X<(xy(1,1)+AxeData.Mesh/3) & X>(xy(1,1)-AxeData.Mesh/3)) & ...%flagx=1 for the vectors with x position selected by the mouse 95 (Y<(xy(1,2)+AxeData.Mesh/3) & Y>(xy(1,2)-AxeData.Mesh/3));%f 96 ivec=find(flag_vec,1);% search the (first) selected vector index ivec 97 hhh=findobj(haxes,'Tag','vector_marker'); 98 if ~isempty(ivec) 99 if ~test_object && ~test_create && ~test_edit && ~test_ruler% mark the vectors with a circle in the absence of other operations 100 pointershape='arrow'; %mouse indicates the detection of a vector 101 if isempty(hhh) 102 hstack=findobj(allchild(0),'Type','figure');%current stack order of figures in matlab 103 axes(haxes) 104 rectangle('Curvature',[1 1],... 105 'Position',[X(ivec)-AxeData.Mesh/2 Y(ivec)-AxeData.Mesh/2 AxeData.Mesh AxeData.Mesh],'EdgeColor','m',... 106 'LineStyle','-','Tag','vector_marker'); 107 set(0,'Children',hstack);%put back the initial figure stack after plot creation 108 else 109 set(hhh,'Visible','on') 110 set(hhh,'Position',[X(ivec)-AxeData.Mesh/2 Y(ivec)-AxeData.Mesh/2 AxeData.Mesh AxeData.Mesh]) 90 FigData=get(currentfig,'UserData'); 91 tagaxes=get(haxes,'tag'); 92 if isfield(FigData,tagaxes) 93 eval(['Field=FigData.' tagaxes ';']) 94 if isfield(Field,'ListVarName') 95 [CellVarIndex,NbDim,VarType]=find_field_indices(Field);%analyse the physical fields contained in Field 96 % if isfield(Field,'Mesh') && ~isempty(Field.Mesh) 97 text_displ_1=''; 98 text_displ_2=''; 99 text_displ_3=''; 100 text_displ_4=''; 101 for icell=1:numel(CellVarIndex)%look for all physical fields 102 if NbDim(icell)==2 % select 2D field 103 if isfield(Field,'Mesh') && ~isempty(Field.Mesh)&& ~isempty(VarType{icell}.coord_x) && ~isempty(VarType{icell}.coord_y)%case of unstructured data 104 eval(['X=Field.' Field.ListVarName{VarType{icell}.coord_x} ';']) 105 eval(['Y=Field.' Field.ListVarName{VarType{icell}.coord_y} ';']) 106 flag_vec=(X<(xy(1,1)+Field.Mesh/3) & X>(xy(1,1)-Field.Mesh/3)) & ...%flagx=1 for the vectors with x position selected by the mouse 107 (Y<(xy(1,2)+Field.Mesh/3) & Y>(xy(1,2)-Field.Mesh/3));%f 108 ivec=find(flag_vec,1);% search the (first) selected vector index ivec 109 hhh=findobj(haxes,'Tag','vector_marker'); 110 if ~isempty(ivec) 111 % mark the vectors with a circle in the absence of other operations 112 if ~test_object && ~test_edit && ~test_ruler 113 pointershape='arrow'; %mouse indicates the detection of a vector 114 if isempty(hhh) 115 set(0,'CurrentFigure',currentfig) 116 set(currentfig,'CurrentAxes',haxes) 117 rectangle('Curvature',[1 1],... 118 'Position',[X(ivec)-Field.Mesh/2 Y(ivec)-Field.Mesh/2 Field.Mesh Field.Mesh],'EdgeColor','m',... 119 'LineStyle','-','Tag','vector_marker'); 120 else 121 set(hhh,'Visible','on') 122 set(hhh,'Position',[X(ivec)-Field.Mesh/2 Y(ivec)-Field.Mesh/2 Field.Mesh Field.Mesh]) 123 end 124 end 125 %display the field values 126 for ivar=1:numel(CellVarIndex{icell}) 127 VarName=Field.ListVarName{CellVarIndex{icell}(ivar)}; 128 eval(['VarVal=Field.' VarName '(ivec);']) 129 var_text=[VarName '=' num2str(VarVal,3) ',']; 130 if isequal(ivar,VarType{icell}.coord_x)||isequal(ivar,VarType{icell}.coord_y)||isequal(ivar,VarType{icell}.coord_z) 131 text_displ_1=[text_displ_1 var_text]; 132 elseif isequal(ivar,VarType{icell}.vector_x)||isequal(ivar,VarType{icell}.vector_y)||isequal(ivar,VarType{icell}.vector_z) 133 text_displ_3=[text_displ_3 var_text]; 134 else 135 text_displ_4=[text_displ_4 var_text]; 136 end 137 end 138 else 139 if ~isempty(hhh) 140 set(hhh,'Visible','off') 111 141 end 112 142 end 113 for ivar=1:numel(CellVarIndex{icell}) 114 VarName=AxeData.ListVarName{CellVarIndex{icell}(ivar)}; 115 eval(['VarVal=AxeData.' VarName '(ivec);']) 116 var_text=[VarName '=' num2str(VarVal,3) ',']; 117 if isequal(ivar,VarType{icell}.coord_x)||isequal(ivar,VarType{icell}.coord_y)||isequal(ivar,VarType{icell}.coord_z) 118 text_displ_1=[text_displ_1 var_text]; 119 elseif isequal(ivar,VarType{icell}.vector_x)||isequal(ivar,VarType{icell}.vector_y)||isequal(ivar,VarType{icell}.vector_z) 120 text_displ_3=[text_displ_3 var_text]; 121 else 122 text_displ_4=[text_displ_4 var_text]; 123 end 124 end 125 else 126 if ~isempty(hhh) 127 set(hhh,'Visible','off') 128 end 129 end 130 elseif numel(VarType{icell}.coord) >=2 %structured coordinates 131 eval(['y=AxeData.' AxeData.ListVarName{VarType{icell}.coord(1)} ';']) 132 eval(['x=AxeData.' AxeData.ListVarName{VarType{icell}.coord(2)} ';']) 133 nxy(1)=numel(y); 134 nxy(2)=numel(x); 135 MaxAY=max(y(1),y(end)); 136 MinAY=min(y(1),y(end)); 137 if (xy(1,1)>x(1))&(xy(1,1)<x(end))&(xy(1,2)<MaxAY)&(xy(1,2)>MinAY) 138 indx0=1+round((nxy(2)-1)*(xy(1,1)-x(1))/(x(end)-x(1)));% index x of pixel 139 indy0=1+round((nxy(1)-1)*(xy(1,2)-y(1))/(y(end)-y(1)));% index y of pixel 140 if indx0>=1 & indx0<=nxy(2) & indy0>=1 & indy0<=nxy(1) 141 text_displ_2=['i=' num2str(indx0) ',j=' num2str(indy0) ',']; 142 for ivar=1:numel(CellVarIndex{icell}) 143 VarName=AxeData.ListVarName{CellVarIndex{icell}(ivar)}; 144 eval(['VarVal=AxeData.' VarName '(indy0,indx0);']) 145 var_text=[VarName '=' num2str(VarVal,3) ',']; 146 text_displ_2=[text_displ_2 var_text]; 143 elseif numel(VarType{icell}.coord) >=2 %structured coordinates 144 eval(['y=Field.' Field.ListVarName{VarType{icell}.coord(1)} ';']) 145 eval(['x=Field.' Field.ListVarName{VarType{icell}.coord(2)} ';']) 146 VarName=Field.ListVarName{CellVarIndex{icell}(1)}; 147 eval(['nxy=size(Field.' VarName ');']); 148 % nxy(1)=numel(y); 149 % nxy(2)=numel(x); 150 MaxAY=max(y(1),y(end)); 151 MinAY=min(y(1),y(end)); 152 if (xy(1,1)>x(1))&(xy(1,1)<x(end))&(xy(1,2)<MaxAY)&(xy(1,2)>MinAY) 153 indx0=1+round((nxy(2)-1)*(xy(1,1)-x(1))/(x(end)-x(1)));% index x of pixel 154 indy0=1+round((nxy(1)-1)*(xy(1,2)-y(1))/(y(end)-y(1)));% index y of pixel 155 if indx0>=1 & indx0<=nxy(2) & indy0>=1 & indy0<=nxy(1) 156 text_displ_2=['i=' num2str(indx0) ',j=' num2str(indy0) ',']; 157 for ivar=1:numel(CellVarIndex{icell}) 158 VarName=Field.ListVarName{CellVarIndex{icell}(ivar)}; 159 eval(['VarVal=Field.' VarName '(indy0,indx0,:);']) 160 var_text=[VarName '=' num2str(VarVal) ',']; 161 text_displ_2=[text_displ_2 var_text]; 162 end 147 163 end 148 164 end … … 150 166 end 151 167 end 168 % end 169 if strcmp(text_displ_1,'') 170 text_displ_1=['x=' num2str(xy(1,1),3) ',y=' num2str(xy(1,2),3) ',']; 171 end 172 if isfield(Field,'PlaneCoord') && isfield(Field,'ZIndex') 173 text_displ_1=[text_displ_1 ' z=' num2str(Field.PlaneCoord(Field.ZIndex,3))]; %TODO: generaliser au cas avec angle 174 end 175 %coordinate transform if proj_coord differs from menu_coord A REVOIR 176 if isfield(Field,'CoordType') 177 mouse.CoordType=Field.CoordType; 178 end 179 if isfield(Field,'CoordUnit') 180 mouse.CoordUnit=Field.CoordUnit; 181 end 182 if isfield(mouse,'CoordType') 183 if isequal(mouse.CoordType,'px') 184 mouse.CoordUnit='px'; 185 end 186 else 187 mouse.CoordUnit='';%default 188 end 189 if test_piv 190 par=civ('read_param_civ1',hhciv); 191 if isfield(Field,'A') 192 dx=str2double(par.dx); 193 dy=str2double(par.dy); 194 xround=x(1)+dx*round((xy(1,1)-x(1))/dx);% index x of pixel 195 yround=y(1)+dy*round((xy(1,2)-y(1))/dy);% index y of pixel 196 end 197 % mark the correlation box with a rectangle 198 ibx2=floor((str2double(par.ibx)-1)/2); 199 iby2=floor((str2double(par.iby)-1)/2); 200 isx2=floor((str2double(par.isx)-1)/2); 201 isy2=floor((str2double(par.isy)-1)/2); 202 hhh=findobj(haxes,'Tag','PIV_box_marker'); 203 hhhh=findobj(haxes,'Tag','PIV_search_marker'); 204 if isempty(hhh) 205 %hstack=findobj(allchild(0),'Type','figure');%current stack order of figures in matlab 206 set(0,'CurrentFigure',currentfig) 207 set(currentfig,'CurrentAxes',haxes) 208 rectangle('Curvature',[0 0],... 209 'Position',[xround-ibx2 yround-iby2 2*ibx2 2*iby2],'EdgeColor','m',... 210 'LineStyle','-','Tag','PIV_box_marker'); 211 rectangle('Curvature',[0 0],... 212 'Position',[xround-isx2 yround-isy2 2*isx 2*isy],'EdgeColor','m',... 213 'LineStyle','- -','Tag','PIV_search_marker'); 214 % set(0,'Children',hstack);%put back the initial figure stack after plot creation 215 else 216 % set(hhh,'Visible','on') 217 set(hhh,'Position',[xround-ibx2 yround-iby2 2*ibx2 2*iby2]) 218 set(hhhh,'Position',[xround-isx2 yround-isy2 2*isx2 2*isy2]) 219 end 220 Asub=Field.A(xround-ibx2:xround+ibx2,yround-iby2:yround+iby2); 221 Asub=reshape(Asub,[],1); 222 rangx(1)=-(isx2-ibx2); 223 rangx(2)=isx2-ibx2; 224 rangy(1)=isy2-iby2; 225 rangy(2)=-(isy2-iby2); 226 for id=rangx(1):rangx(2) 227 for jd=rangy(2):rangy(1) 228 Bsub=Field.B(xround-ibx2+id:xround+ibx2+id,yround-iby2+jd:yround+iby2+jd); 229 Bsub=reshape(Bsub,[],1); 230 correl(jd-rangy(2)+1,id-rangx(1)+1)=corr(double(Asub),double(Bsub)); 231 end 232 end 233 %correl=uint8(63.5*correl+63.5); 234 hcorr=[]; 235 if isfield(AxeData,'CurrentCorrImage') 236 hcorr=AxeData.CurrentCorrImage; 237 if ~ishandle(hcorr) 238 hcorr=[]; 239 end 240 end 241 if isempty(hcorr) 242 coorfig=findobj(allchild(0),'tag','corrfig'); 243 if isempty(coorfig) 244 corrfig=figure; 245 set(corrfig,'tag','corrfig') 246 end 247 set(0,'CurrentFigure',corrfig) 248 AxeData.CurrentCorrImage=imagesc(rangx,rangy,correl,[0 1]); 249 colorbar 250 % map_r=ones(42,1)*[1 0 0]; 251 % map_g=ones(11,1)*[0 1 0]; 252 % map_b=ones(11,1)*[0 0 1]; 253 % map=[map_r;map_g;map_b]; 254 % set(corrfig,'colormap',map) 255 set(haxes,'UserData',AxeData) 256 else 257 set(AxeData.CurrentCorrImage,'CData',correl) 258 end 152 259 end 153 260 end 154 if strcmp(text_displ_1,'') 155 text_displ_1=['x=' num2str(xy(1,1)) ',y=' num2str(xy(1,2))]; 156 end 157 if isfield(AxeData,'Z') 158 text_displ_1=[text_displ_1 num2str(AxeData.Z)]; %generaliser au cas avec angle 159 end 160 if isfield(AxeData,'ObjectCoord') && size(AxeData.ObjectCoord,2)==3 161 text_displ_1=[text_displ_1 num2str(AxeData.ObjectCoord(1,3))]; %generaliser au cas avec angle 162 end 163 %images 164 if strcmp(text_displ_2,'')&&isfield(AxeData,'A')&&isfield(AxeData,'AX')&&isfield(AxeData,'AY') 165 y=AxeData.AY; 166 x=AxeData.AX; 167 nxy=size(AxeData.A); 168 MaxAY=max(y(1),y(end)); 169 MinAY=min(y(1),y(end)); 170 if (xy(1,1)>x(1))&(xy(1,1)<x(end))&(xy(1,2)<MaxAY)&(xy(1,2)>MinAY) 171 indx0=1+round((nxy(2)-1)*(xy(1,1)-x(1))/(x(end)-x(1)));% index x of pixel 172 indy0=1+round((nxy(1)-1)*(xy(1,2)-y(1))/(y(end)-y(1)));% index y of pixel 173 if indx0>=1 & indx0<=nxy(2) & indy0>=1 & indy0<=nxy(1) 174 text_displ_2=['i=' num2str(indx0) ',j=' num2str(indy0) ',A=' num2str(AxeData.A(indy0,indx0,:))]; 175 end 176 end 177 end 178 %coordinate transform if proj_coord differs from menu_coord A REVOIR 179 if isfield(AxeData,'CoordType') 180 mouse.CoordType=AxeData.CoordType; 181 end 182 if isfield(AxeData,'CoordUnit') 183 mouse.CoordUnit=AxeData.CoordUnit; 184 end 185 if isfield(mouse,'CoordType') 186 if isequal(mouse.CoordType,'px') 187 mouse.CoordUnit='px'; 188 end 189 else 190 mouse.CoordUnit='';%default 191 end 192 end 261 end 193 262 end 194 263 end … … 200 269 201 270 %%%%%%%%%%%%% 202 % draw a zoom rectangle if no object creation is selected271 %% draw a zoom rectangle if no object creation is selected 203 272 if test_zoom_draw 204 273 xy_rect=AxeData.CurrentOrigin; … … 221 290 222 291 %%%%%%%%%%%%%%%%% 223 % create or modify an object292 %% create or modify an object 224 293 225 294 if ~isempty(huvmat) && test_object … … 234 303 XYData=AxeData.CurrentOrigin; 235 304 if isequal(AxeData.Drawing,'create') && isfield(AxeData,'CurrentOrigin') && ~isempty(AxeData.CurrentOrigin) 236 if isequal(ObjectData.Style,'line')|isequal(ObjectData.Style,'polyline')|isequal(ObjectData.Style,'polygon')|isequal(ObjectData.Style,'points')305 if strcmp(ObjectData.Style,'line')||strcmp(ObjectData.Style,'polyline')||strcmp(ObjectData.Style,'polygon')||strcmp(ObjectData.Style,'points') 237 306 xy(1,3)=0; 238 307 ObjectData.Coord=[ObjectData.Coord ;xy(1,:)]; 239 308 % ObjectData.Coord(end,:)=xy(1,:); 240 elseif isequal(ObjectData.Style,'rectangle')|isequal(ObjectData.Style,'ellipse')|isequal(ObjectData.Style,'volume')309 elseif strcmp(ObjectData.Style,'rectangle')||strcmp(ObjectData.Style,'ellipse')||strcmp(ObjectData.Style,'volume') 241 310 ObjectData.Coord(1,1)=(xy(1,1)+XYData(1))/2;%origin rectangle, x coordinate 242 311 ObjectData.Coord(1,2)=(xy(1,2)+XYData(2))/2; … … 273 342 end 274 343 275 % detect calibration points if the GUI geometry_calib is opened344 %% detect calibration points if the GUI geometry_calib is opened 276 345 h_geometry_calib=findobj(allchild(0),'Name','geometry_calib'); %find the geomterty_calib GUI 277 346 if ~test_zoom && ~isempty(h_geometry_calib) … … 317 386 end 318 387 319 % draw ruler388 %% draw ruler 320 389 if test_ruler && isequal(AxeData.Drawing,'ruler') 321 390 if isfield(UvData,'RulerHandle') … … 326 395 end 327 396 end 397 398 %% update the mouse pointer 328 399 set(currentfig,'Pointer',pointershape); -
trunk/src/mouse_up.m
r102 r150 24 24 function mouse_up(hObject,eventdata,handles) 25 25 MouseAction='none'; %default 26 zoomstate=0;%default 26 test_zoom=0;%default 27 currentfig=hObject; 28 hhcurrentfig=guidata(currentfig); 29 test_zoom=get(hhcurrentfig.zoom,'Value'); 27 30 if ~exist('handles','var') 28 31 handles=get(gcbo,'UserData'); … … 35 38 MouseAction=UvData.MouseAction;% set the mouse action (edit, create objects...) 36 39 end 37 zoomstate=get(hhuvmat.zoom,'Value');40 % test_zoom=get(hhuvmat.zoom,'Value'); 38 41 end 39 42 currentfig=hObject; … … 206 209 end 207 210 %zoom in by a factor 2 if no new figure is created 208 if zoomstate211 if test_zoom 209 212 xy=get(currentaxes,'CurrentPoint');%xy(1,1),xy(1,2): current x,y positions in axes coordinates 210 213 if isequal(get(currentfig,'SelectionType'),'normal');%if left button has been pressed … … 268 271 269 272 % editing calibration point 270 if ~ zoomstate&& strcmp(MouseAction,'calib')273 if ~test_zoom && strcmp(MouseAction,'calib') 271 274 h_geometry_calib=findobj(allchild(0),'Name','geometry_calib'); %find the geomterty_calib GUI 272 275 hh_geometry_calib=guidata(h_geometry_calib); … … 314 317 315 318 %display the data of the current object selected with the mouse right click 316 if isequal(get(currentfig,'SelectionType'),'alt') && ~ zoomstate&& (~isfield(AxeData,'Drawing')||~isequal(AxeData.Drawing,'create'))319 if isequal(get(currentfig,'SelectionType'),'alt') && ~test_zoom && (~isfield(AxeData,'Drawing')||~isequal(AxeData.Drawing,'create')) 317 320 hother=findobj('Tag','proj_object');%find all the proj objects 318 321 nbselect=0; -
trunk/src/nc2struct.m
r140 r150 62 62 if ischar(nc) 63 63 if exist(nc,'file') 64 try 64 65 nc=netcdf.open(nc,'NC_NOWRITE'); 65 66 testfile=1; 67 catch errormsg 68 Data.Txt=['ERROR opening ' nc ': ' errormsg.identifier]; 69 return 70 end 66 71 else 67 72 Data.Txt=['ERROR:file ' nc ' does not exist']; -
trunk/src/plot_field.m
r147 r150 231 231 end 232 232 233 % set graph aspect ratio234 if isfield(AxeData,'Mesh')235 Data.Mesh=AxeData.Mesh;236 end233 % % set graph aspect ratio 234 % if isfield(AxeData,'Mesh') 235 % Data.Mesh=AxeData.Mesh; 236 % end 237 237 238 238 %set(haxes,'UserData',AxeData) … … 448 448 hlegend=legend(legend_str); 449 449 txt=ver('MATLAB'); 450 Release=txt.Release 451 relnumb=str2 num(Release(3:4));% should be changed to Version for better compatibility450 Release=txt.Release; 451 relnumb=str2double(Release(3:4));% should be changed to Version for better compatibility 452 452 if relnumb >= 14 453 453 set(hlegend,'Interpreter','none')% desable tex interpreter … … 474 474 txt=ver('MATLAB'); 475 475 Release=txt.Release; 476 relnumb=str2 num(Release(3:4));476 relnumb=str2double(Release(3:4)); 477 477 if relnumb >= 14 478 478 set(htitle,'Interpreter','none')% desable tex interpreter … … 928 928 vec_U=reshape(vec_U,1,numel(vec_U)); 929 929 vec_V=reshape(vec_V,1,numel(vec_V)); 930 MinMaxX=max(vec_X)-min(vec_X);931 MinMaxY=max(vec_Y)-min(vec_Y);932 AxeData.Mesh=sqrt((MinMaxX*MinMaxY)/length(vec_X));930 MinMaxX=max(vec_X)-min(vec_X); 931 % MinMaxY=max(vec_Y)-min(vec_Y); 932 % AxeData.Mesh=sqrt((MinMaxX*MinMaxY)/length(vec_X)); 933 933 if ~isfield(PlotParam.Vectors,'AutoVec') || isequal(PlotParam.Vectors.AutoVec,0)|| ~isfield(PlotParam.Vectors,'VecScale')... 934 934 ||isempty(PlotParam.Vectors.VecScale)||~isa(PlotParam.Vectors.VecScale,'double') %automatic vector scale … … 937 937 indsel=find(AxeData.FF==0);%indsel =indices of good vectors 938 938 else 939 indsel= [1:numel(vec_X)];%939 indsel=1:numel(vec_X);% 940 940 end 941 941 if isempty(vec_U) … … 977 977 978 978 %decimate by a factor 2 in vector mesh(4 in nbre of vectors) 979 if isfield(PlotParam.Vectors,'decimate4') &isequal(PlotParam.Vectors.decimate4,1)979 if isfield(PlotParam.Vectors,'decimate4') && isequal(PlotParam.Vectors.decimate4,1) 980 980 diffy=diff(vec_Y); %difference dy=vec_Y(i+1)-vec_Y(i) 981 981 dy_thresh=max(abs(diffy))/2; … … 983 983 ind_sel=1:ind_jump(1);%select the first line 984 984 for i=2:2:length(ind_jump)-1 985 ind_sel=[ind_sel [ind_jump(i)+1:ind_jump(i+1)]];% select the odd lines985 ind_sel=[ind_sel (ind_jump(i)+1:ind_jump(i+1))];% select the odd lines 986 986 end 987 987 nb_sel=length(ind_sel); … … 1042 1042 AxeData.F=[]; 1043 1043 AxeData.FF=[]; 1044 AxeData.Mesh=[];1044 % AxeData.Mesh=[]; 1045 1045 PlotParamOut=rmfield(PlotParamOut,'Vectors'); 1046 1046 end … … 1169 1169 hx = [x1;x2;x3]; 1170 1170 hy = [y1;y2;y3]; 1171 tri=reshape( [1:3*length(uc)],3,[])';1171 tri=reshape(1:3*length(uc),3,[])'; 1172 1172 d = tri(:,[1 2 3 1])'; 1173 1173 -
trunk/src/proj_field.m
r109 r150 81 81 82 82 function [ProjData,errormsg]=proj_field(FieldData,ObjectData,IndexObj) 83 83 errormsg=[];%default 84 84 if isfield(ObjectData,'ProjMode') && (isequal(ObjectData.ProjMode,'none')||isequal(ObjectData.ProjMode,'mask_inside')||isequal(ObjectData.ProjMode,'mask_outside')) 85 85 ProjData=[]; … … 170 170 return 171 171 end 172 ProjData=proj_heading(FieldData,ObjectData);172 [ProjData,errormsg]=proj_heading(FieldData,ObjectData); 173 173 ProjData.NbDim=0; 174 174 %ProjData.ListDimName= {'nb_points'}; … … 373 373 function [ProjData,errormsg]=proj_patch(FieldData,ObjectData)%% 374 374 %------------------------------------------------------------------- 375 ProjData=proj_heading(FieldData,ObjectData);375 [ProjData,errormsg]=proj_heading(FieldData,ObjectData); 376 376 377 377 objectfield=fieldnames(ObjectData); … … 560 560 function [ProjData,errormsg] = proj_line(FieldData, ObjectData) 561 561 %----------------------------------------------------------------- 562 ProjData=proj_heading(FieldData,ObjectData);%transfer global attributes 562 [ProjData,errormsg]=proj_heading(FieldData,ObjectData);%transfer global attributes 563 if ~isempty(errormsg) 564 return 565 end 563 566 ProjData.NbDim=1; 564 565 567 %initialisation of the input parameters and defaultoutput 566 568 ProjMode='projection';%direct projection on the line by default … … 991 993 992 994 % initiate Matlab structure for physical field 993 ProjData=proj_heading(FieldData,ObjectData);995 [ProjData,errormsg]=proj_heading(FieldData,ObjectData); 994 996 ProjData.NbDim=2; 995 997 ProjData.ListVarName={}; … … 1561 1563 1562 1564 % initiate Matlab structure for physical field 1563 ProjData=proj_heading(FieldData,ObjectData);1565 [ProjData,errormsg]=proj_heading(FieldData,ObjectData); 1564 1566 ProjData.NbDim=3; 1565 1567 %ProjData.ListDimName={};%name of dimension … … 2064 2066 % ProjData=FieldData; 2065 2067 ProjData=[];%default 2068 errormsg=[];%default 2066 2069 if ~isfield(FieldData,'ListGlobalAttribute') 2067 2070 ProjData.ListGlobalAttribute={}; -
trunk/src/set_object.m
r102 r150 772 772 function PLOT_Callback(hObject, eventdata, handles) 773 773 774 %SetData=get(handles.set_object,'UserData');%get the hidden interface data775 774 huvmat=findobj('tag','uvmat');%find the current uvmat interface handle 776 775 UvData=get(huvmat,'UserData');%Data associated to the GUI uvmat … … 786 785 testnew=0; 787 786 PlotHandles=get_plot_handles(hhuvmat); 787 projview=''; 788 788 if strcmp(ListObject{IndexObj_1},ObjectName)% we are editing the object whose projection is viewed in the uvmat frame 789 789 ObjectData.HandlesDisplay=hhuvmat.axes3; 790 790 IndexObj=IndexObj_1; 791 projview='uvmat'; 791 792 elseif IndexObj_2<=numel(ListObject)&& strcmp(ListObject{IndexObj_2},ObjectName)% we are editing the object whose projection is viewed in view_field 792 793 hview_field=findobj('tag','view_field'); … … 796 797 end 797 798 IndexObj=IndexObj_2; 799 projview='view_field'; 798 800 else %new object 799 801 testnew=1; … … 825 827 % update the object plot and projection field 826 828 UvData.Object{IndexObj}=update_obj(UvData,IndexObj,ObjectData,PlotHandles); 827 set(huvmat,'UserData',UvData)%update the data in the uvmat interface 829 if strcmp(projview,'view_field') 830 ViewFieldData=get(hview_field,'UserData'); 831 ViewFieldData.axes3=ObjectData; 832 set(hview_field,'UserData',ViewFieldData) 833 else 834 UvData.axes3=ObjectData; 835 end 828 836 829 837 %set uvmat to object edit mode to allow further object update -
trunk/src/uvmat.m
r147 r150 1014 1014 txt=ver('MATLAB'); 1015 1015 Release=txt.Release; 1016 relnumb=str2 num(Release(3:4));1016 relnumb=str2double(Release(3:4)); 1017 1017 if relnumb >= 14 1018 1018 save (profil_perso,'MenuFile_1','MenuFile_2','MenuFile_3','MenuFile_4', 'MenuFile_5','-V6'); %store the file names for future opening of uvmat … … 2167 2167 FileType_1='vol'; 2168 2168 FieldName_1='image'; 2169 else 2169 elseif length(Ext_1)>1 2170 2170 form=imformats(Ext_1(2:end)); 2171 2171 if ~isempty(form)% if the extension corresponds to an image format recognized by Matlab … … 2688 2688 IndexObj_2=get(handles.list_object_2,'Value');%selected projection object for the second view 2689 2689 if isequal(get(handles.list_object_2,'Visible'),'on') && IndexObj_2 <= numel(UvData.Object)&& ~isempty(UvData.Object{IndexObj_2}) 2690 UvData.Object{IndexObj_2} 2690 2691 IndexObj(2)=IndexObj_2; 2691 2692 view_field_handle=findobj(allchild(0),'tag','view_field');%handles of the view_field GUI … … 2702 2703 for imap=1:numel(IndexObj) 2703 2704 iobj=IndexObj(imap); 2704 ObjectData=proj_field(UvData.Field,UvData.Object{iobj},iobj);% project field on the object 2705 2705 [ObjectData,errormsg]=proj_field(UvData.Field,UvData.Object{iobj},iobj);% project field on the object 2706 if ~isempty(errormsg) 2707 return 2708 end 2706 2709 %use of mask (TODO: check) 2707 2710 if isfield(ObjectData,'NbDim') && isequal(ObjectData.NbDim,2) && isfield(ObjectData,'Mask') && isfield(ObjectData,'A') … … 2756 2759 [PlotType,PlotParamOut]=plot_field(ObjectData,haxes(imap),PlotParam{imap},keeplim(imap),PosColorbar{imap}); 2757 2760 write_plot_param(plot_handles{imap},PlotParamOut) %update the auto plot parameters 2758 if imap==1 2759 UvData.ProjField=ObjectData; 2761 if isfield(UvData,'Mesh')&~isempty(UvData.Mesh) 2762 ObjectData.Mesh=UvData.Mesh; % gives an estimated mesh size (useful for mouse action on the plot) 2763 end 2764 if imap==1 2765 UvData.axes3=ObjectData; 2760 2766 else 2761 2767 ViewFieldData=get(view_field_handle,'UserData'); 2762 ViewFieldData. ProjField=ObjectData;2768 ViewFieldData.axes3=ObjectData; 2763 2769 set(view_field_handle,'UserData',ViewFieldData) 2764 2770 end … … 4359 4365 %------------------------------------------------------------------- 4360 4366 haxes= handles.axes3; 4361 AxeData=get(haxes,'UserData'); 4367 UvData=get(handles.uvmat,'UserData'); 4368 AxeData=UvData.axes3; 4362 4369 PlotParam=read_plot_param(handles); 4363 4370 [PlotType,PlotParamOut]= plot_field(AxeData,haxes,PlotParam,1); … … 4936 4943 ind_opening=2;% propose 'fix' as the default option 4937 4944 % +read the current netcdf rootfile 4938 Data=nc2struct(FileName, []);4939 if isfield(Data,'fix') & isequal(Data.fix,1)4945 Data=nc2struct(FileName,'ListGlobalAttribute','fix','patch','civ2','fix2'); 4946 if isfield(Data,'fix') && isequal(Data.fix,1) 4940 4947 ind_opening=3; 4941 4948 end 4942 if isfield(Data,'patch') & isequal(Data.patch,1)4949 if isfield(Data,'patch') && isequal(Data.patch,1) 4943 4950 ind_opening=4; 4944 4951 end 4945 if isfield(Data,'civ2') & isequal(Data.civ2,1)4952 if isfield(Data,'civ2') && isequal(Data.civ2,1) 4946 4953 ind_opening=5; 4947 4954 end 4948 if isfield(Data,'fix2') & isequal(Data.fix2,1)4955 if isfield(Data,'fix2') && isequal(Data.fix2,1) 4949 4956 ind_opening=6; 4950 4957 end … … 4960 4967 param.ImaExt=ext; 4961 4968 civ(param);% interface de civ(not in the uvmat file) 4962 4969 4963 4970 % ------------------------------------------------------------------ 4964 4971 function MenuTools_Callback(hObject, eventdata, handles) -
trunk/src/view_field.m
r144 r150 1 2 1 %'view_field': function associated with the GUI 'view_field.fig' for images and data field visualization 3 2 %------------------------------------------------------------------------ … … 60 59 61 60 % Choose default command menuline output for view_field 62 handles.output = handles. axes3;61 handles.output = handles.view_field; 63 62 64 63 % Update handles structure … … 92 91 93 92 [PlotType,PlotParamOut]= plot_field(Field,handles.axes3);%,PlotParam,KeepLim,PosColorbar) 94 set(handles.axes3,'UserData',Field);%store the current field 93 ViewFieldData.axes3=Field; 94 set(handles.view_field,'UserData',ViewFieldData);%store the current field 95 get(handles.view_field) 95 96 if isfield(PlotParamOut,'Vectors') 96 97 set(handles.VECT_title,'Visible','on') … … 692 693 693 694 %------------------------------------------------------------------- 694 function [PlotType,ScalOut]=update_plot(handles)695 function PlotType=update_plot(handles) 695 696 %------------------------------------------------------------------- 696 697 haxes= handles.axes3; … … 708 709 global Data_view_field 709 710 % huvmat=findobj(allchild(0),'Name','uvmat'); 710 Data_view_field=get(handles.axes3,'UserData'); 711 Data_view_field=get(handles.view_field,'UserData'); 712 Data_view_field=Data_view_field.axes3; 711 713 % Data_view_field=UvData.ProjField_2; 712 714 evalin('base','global Data_view_field')%make CurData global in the workspace … … 775 777 function closefcn(hObject, eventdata, handles) 776 778 huvmat=findobj(allchild(0),'Name','uvmat'); 779 if ~isempty(huvmat) 777 780 hhuvmat=guidata(huvmat); 778 781 list_object_2=get(hhuvmat.list_object_2,'String'); 779 782 set(hhuvmat.list_object_2,'Value',numel(list_object_2))%select the last value ('...') 783 end 780 784 delete(hObject) 781 782 785 783 786 784 787 % --- Executes on selection change in popupmenu18. 785 788 function popupmenu18_Callback(hObject, eventdata, handles) 786 787 788 function edit91_Callback(hObject, eventdata, handles)789 % hObject handle to edit91 (see GCBO)790 % eventdata reserved - to be defined in a future version of MATLAB791 % handles structure with handles and user data (see GUIDATA)792 793 % Hints: get(hObject,'String') returns contents of edit91 as text794 % str2double(get(hObject,'String')) returns contents of edit91 as a double795 796 797 % --- Executes on button press in checkbox45.798 function checkbox45_Callback(hObject, eventdata, handles)799 % hObject handle to checkbox45 (see GCBO)800 % eventdata reserved - to be defined in a future version of MATLAB801 % handles structure with handles and user data (see GUIDATA)802 803 % Hint: get(hObject,'Value') returns toggle state of checkbox45804 805 806 % --- Executes on selection change in popupmenu19.807 function popupmenu19_Callback(hObject, eventdata, handles)808 % hObject handle to popupmenu19 (see GCBO)809 % eventdata reserved - to be defined in a future version of MATLAB810 % handles structure with handles and user data (see GUIDATA)811 812 % Hints: contents = get(hObject,'String') returns popupmenu19 contents as cell array813 % contents{get(hObject,'Value')} returns selected item from popupmenu19814 815 816 817 818 789 819 790
Note: See TracChangeset
for help on using the changeset viewer.