Changeset 179 for trunk/src/uvmat.m
- Timestamp:
- Jan 9, 2011, 12:56:28 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/uvmat.m
r178 r179 52 52 % .VelType_1: last velocity type (civ1, civ2...) for the second input series 53 53 % .FieldName_1: last field name(velocity, vorticity...) for the second input series 54 % .NbDim: number of space dimensions of the input field55 54 % .ZMin, .ZMax: range of the z coordinate 56 55 %..... to complement … … 1225 1224 nburst_1=1; 1226 1225 set(handles.Dt_txt,'String',['Dt=' num2str(1000/info.FramesPerSecond) 'ms']);%display the elementary time interval in millisec 1227 time= [0:1/imainfo.FramesPerSecond:(imainfo.NumFrames-1)/imainfo.FramesPerSecond]';1226 time=(0:1/imainfo.FramesPerSecond:(imainfo.NumFrames-1)/imainfo.FramesPerSecond)'; 1228 1227 ColorType=imainfo.ImageType;%='truecolor' for color images 1229 1228 hhh=which('mmreader'); … … 1333 1332 else 1334 1333 UvData.GeometryCalib_1=GeometryCalib; 1335 if (isfield(GeometryCalib,'R')& ~isequal(GeometryCalib.R(2,1),0) & ~isequal(GeometryCalib.R(1,2),0))|...1336 (isfield(GeometryCalib,'kappa1')& ~isequal(GeometryCalib.kappa1,0))1334 if (isfield(GeometryCalib,'R')&& ~isequal(GeometryCalib.R(2,1),0) && ~isequal(GeometryCalib.R(1,2),0)) ||... 1335 (isfield(GeometryCalib,'kappa1')&& ~isequal(GeometryCalib.kappa1,0)) 1337 1336 set(handles.pxcm,'String','var') 1338 1337 set(handles.pycm,'String','var') … … 1591 1590 end 1592 1591 num_i1_mask=mod(num_i1-1,MaskData.NbSlice)+1; 1593 MaskData.NomType1594 1592 MaskName=name_generator(MaskData.Base,num_i1_mask,num_j1,'.png',MaskData.NomType); 1595 1593 huvmat=get(handles.mask_test,'parent'); … … 2227 2225 if isfield(UvData.XmlData,'Npy') 2228 2226 Npz=size(A,1)/UvData.XmlData.Npy; 2229 A=reshape(A,Npz,UvData.XmlData.Npy,UvData.XmlData.Npx); 2227 A=reshape(A',UvData.XmlData.Npx,UvData.XmlData.Npy,Npz); 2228 A=permute(A,[3 2 1]); 2230 2229 end 2231 2230 case 'multimage' … … 2239 2238 Rangx=[0.5 npxy(2)-0.5]; % coordinates of the first and last pixel centers 2240 2239 Rangy=[npxy(1)-0.5 0.5]; % 2240 Field{1}.NbDim=2;%default 2241 2241 Field{1}.AName='image'; 2242 2242 Field{1}.ListVarName={'AY','AX','A'}; % … … 2247 2247 Field{1}.AX=[0.5 npxy(2)-0.5]; % coordinates of the first and last pixel centers 2248 2248 else 2249 Field{1}.NbDim=3; 2249 2250 Field{1}.ListVarName=['AZ' Field{1}.ListVarName]; 2250 2251 Field{1}.VarDimName={'AZ','AY','AX',{'AZ','AY','AX'}}; 2251 Field{1}.AZ=[ 0.5 npxy(1)-0.5];2252 Field{1}.AZ=[npxy(1)-0.5 0.5]; 2252 2253 Field{1}.AY=[npxy(2)-0.5 0.5]; 2253 2254 Field{1}.AX=[0.5 npxy(3)-0.5]; % coordinates of the first and last pixel centers … … 2342 2343 end 2343 2344 CivStage=Field{1}.CivStage; 2344 UvData.NbDim=Field{1}.nb_dim;2345 %UvData.NbDim=Field{1}.NbDim; 2345 2346 end 2346 2347 end … … 2411 2412 end 2412 2413 %put W as background image by default if NbDim=2: 2413 if ~isfield(UvData,'NbDim')||isempty(UvData.NbDim)||~isequal(UvData.NbDim,3) 2414 if UvData.NewSeries && isequal(get(handles.SubField,'Value'),0) && isfield(Field{1},'W') && ~isempty(Field{1}.W); 2414 if UvData.NewSeries && isequal(get(handles.SubField,'Value'),0) && isfield(Field{1},'W') && ~isempty(Field{1}.W) && ~isequal(Field{1}.NbDim,3); 2415 2415 set(handles.SubField,'Value',1); 2416 2416 %menu=update_menu(handles.Fields_1,'w');%update the menu for the background scalar nd set the choice to 'w' … … 2430 2430 set(handles.Fields_1,'Visible','on'); 2431 2431 Field{1}.AName='w'; 2432 % testscal=1;2433 end2434 2432 end 2435 2433 2436 2434 %multislice case 2437 if ~isempty(filename) &&(~isfield(UvData,'NbDim') || isequal(UvData.NbDim,2))&&...%2D case 2438 isfield(UvData,'XmlData') && isfield(UvData.XmlData,'GeometryCalib')&& isfield(UvData.XmlData.GeometryCalib,'SliceCoord') 2439 siz=size(UvData.XmlData.GeometryCalib.SliceCoord); 2440 % if siz(1)>1 2441 % NbSlice=siz(1); 2442 % else 2443 % NbSlice=1; 2444 % end 2445 end 2435 % if ~isempty(filename) &&(~isfield(UvData,'NbDim') || isequal(UvData.NbDim,2))&&...%2D case 2436 % isfield(UvData,'XmlData') && isfield(UvData.XmlData,'GeometryCalib')&& isfield(UvData.XmlData.GeometryCalib,'SliceCoord') 2437 % siz=size(UvData.XmlData.GeometryCalib.SliceCoord); 2438 % end 2446 2439 2447 2440 %store the current open names, fields and vel types in uvmat interface … … 2493 2486 Field{2}=calc_field(InputField_1,Field{2}); 2494 2487 end 2495 % combine the two input fields (e.g. substract velocity fields) 2488 2489 %% combine the two input fields (e.g. substract velocity fields) 2496 2490 if numel(Field)==2 2497 UvData.Field=sub_field(Field{1},Field{2}); %TO UPDATE FOR MORE GENERAL INPUT2491 UvData.Field=sub_field(Field{1},Field{2}); 2498 2492 else 2499 2493 UvData.Field=Field{1}; … … 2503 2497 test_x=0; 2504 2498 test_z=0;% test for unstructured z coordinate 2505 % UvData.ZMax=0;2506 % UvData.ZMin=0;%default2507 %UvData.Mesh=1; %default2508 2499 [UvData.Field,errormsg]=check_field_structure(UvData.Field); 2509 2500 if ~isempty(errormsg) … … 2513 2504 [CellVarIndex,NbDim,VarType]=find_field_indices(UvData.Field); 2514 2505 [NbDim,imax]=max(NbDim); 2515 % if isempty(imax)2516 % % DimVarIndex=0;2517 % coord_x=[];2518 % else2519 % % VarIndex=CellVarIndex{imax};2520 % coord_x=VarType{imax}.coord_x;2521 % end2522 % if isfield(UvData,'NbDim') && ~isempty(UvData.NbDim)2523 % NbDim=UvData.NbDim;2524 % else2525 UvData.NbDim=NbDim;2526 % end2527 2506 if ~isempty(VarType{imax}.coord_x) && ~isempty(VarType{imax}.coord_y) %unstructured coordinates 2528 2507 XName=UvData.Field.ListVarName{VarType{imax}.coord_x}; … … 2530 2509 eval(['nbvec=length(UvData.Field.' XName ');'])%nbre of measurement points (e.g. vectors) 2531 2510 test_x=1;%test for unstructured coordinates 2532 elseif NbDim==2 2533 YName=UvData.Field.ListVarName{VarType{imax}.coord(1)}; %structured coordinates 2534 XName=UvData.Field.ListVarName{VarType{imax}.coord(2)}; 2535 elseif NbDim==3 2511 else %structured coordinate 2512 YName=UvData.Field.ListVarName{VarType{imax}.coord(NbDim-1)}; %structured coordinates 2513 XName=UvData.Field.ListVarName{VarType{imax}.coord(NbDim)}; 2514 end 2515 if NbDim==3 2536 2516 ZName=UvData.Field.ListVarName{VarType{imax}.coord(1)};%structured coordinates in 3D 2537 YName=UvData.Field.ListVarName{VarType{imax}.coord(2)};2538 XName=UvData.Field.ListVarName{VarType{imax}.coord(3)};2539 2517 eval(['ZMax=max(UvData.Field.' ZName ');']) 2540 2518 eval(['ZMin=min(UvData.Field.' ZName ');']) 2519 test_z=1; 2520 if isequal(ZMin,ZMax)%no z dependency 2521 NbDim=2; 2522 test_z=0; 2523 end 2541 2524 end 2542 2525 eval(['XMax=max(UvData.Field.' XName ');']) … … 2545 2528 eval(['YMin=min(UvData.Field.' YName ');']) 2546 2529 eval(['nbvec=length(UvData.Field.' XName ');']) 2547 if NbDim==3% 2548 if ~isempty(CellVarIndex) && ~isempty(VarType{imax}.coord_z)%unstructured coordinate z 2549 % ZName=UvData.Field.ListVarName{VarType{imax}.coord_z}; 2550 eval(['ZMax=max(UvData.Field.' ZName ');']) 2551 eval(['ZMin=min(UvData.Field.' ZName ');']) 2552 test_z=1; 2553 elseif isfield(UvData,'Z')% usual civ data 2554 ZMax=max(UvData.Z); 2555 ZMin=min(UvData.Z); 2556 test_z=1; 2557 end 2558 if isequal(ZMin,ZMax)%no z dependency 2559 NbDim=2; 2560 test_z=0; 2561 end 2562 end 2563 if test_x 2530 if test_x %unstructured coordinates 2564 2531 if test_z 2565 2532 UvData.Field.Mesh=((XMax-XMin)*(YMax-YMin)*(ZMax-ZMin))/nbvec;% volume per vector … … 2571 2538 VarIndex=CellVarIndex{imax}; % list of variable indices 2572 2539 DimIndex=UvData.Field.VarDimIndex{VarIndex(1)}; %list of dim indices for the variable 2573 nbpoints_y=UvData.Field.DimValue(DimIndex(1)); 2574 nbpoints_x=UvData.Field.DimValue(DimIndex(2)); 2575 DX=(XMax-XMin)/nbpoints_x; 2576 DY=(YMax-YMin)/nbpoints_y; 2577 UvData.Field.Mesh=sqrt(DX*DY); 2578 end 2540 nbpoints_y=UvData.Field.DimValue(DimIndex(NbDim-1)); 2541 nbpoints_x=UvData.Field.DimValue(DimIndex(NbDim)); 2542 DX=(XMax-XMin)/(nbpoints_x-1); 2543 DY=(YMax-YMin)/(nbpoints_y-1); 2544 if NbDim==3 2545 nbpoints_z=UvData.Field.DimValue(DimIndex(1)); 2546 DZ=(ZMax-ZMin)/(nbpoints_z-1); 2547 UvData.Field.Mesh=sqrt(DX*DY*DZ); 2548 UvData.Field.ZMax=ZMax; 2549 UvData.Field.ZMin=ZMin; 2550 else 2551 UvData.Field.Mesh=sqrt(DX*DY); 2552 end 2553 end 2554 UvData.Field.NbDim=NbDim; 2579 2555 UvData.Field.XMax=XMax; 2580 2556 UvData.Field.XMin=XMin; 2581 UvData.Field.YMax=XMax; 2582 UvData.Field.YMin=XMin; 2583 if NbDim==3 2584 UvData.Field.ZMax=ZMax; 2585 UvData.Field.ZMin=ZMin; 2586 end 2587 2588 %case of structured coordinates 2589 2590 % if isempty(coord_x) && ~isempty(CellVarIndex) 2591 % VarIndex=CellVarIndex{imax}; % list of variable indices 2592 % DimIndex=UvData.Field.VarDimIndex{VarIndex(1)}; %list of dim indices for the variable 2593 % if NbDim==3 2594 % nbpoints=UvData.Field.DimValue(DimIndex(1)); 2595 % if isfield(VarType{imax},'coord_3')&& ~isequal(VarType{imax}.coord_3,0) % z is a dimension variable 2596 % ZName=UvData.Field.ListVarName{VarType{imax}.coord_3}; 2597 % eval(['UvData.ZMax=max(UvData.Field.' ZName ');']) 2598 % eval(['UvData.ZMin=min(UvData.Field.' ZName ');']) 2599 % else 2600 % testcoord_z=0; 2601 % if length(UvData.Field.VarAttribute)>=VarIndex(1) 2602 % if isfield(UvData.Field.VarAttribute{VarIndex(1)},'Coord_1')%regular grid 2603 % Coord_z=UvData.Field.VarAttribute{VarIndex(1)}.Coord_1; 2604 % UvData.ZMax=max(Coord_z); 2605 % UvData.ZMin=min(Coord_z); 2606 % testcoord_z=1; 2607 % end 2608 % end 2609 % if ~testcoord_z 2610 % UvData.ZMin=1; 2611 % UvData.ZMax=UvData.Field.DimValue(DimIndex(1)); 2612 % end 2613 % end 2614 % Field.Mesh=(UvData.ZMax-UvData.ZMin)/(nbpoints-1); 2615 % elseif NbDim==2 2616 % nbpoints_y=UvData.Field.DimValue(DimIndex(1)); 2617 % Yvar=VarType{imax}.coord_y; 2618 % if Yvar~=0 % x is a dimension variable 2619 % YName=UvData.Field.ListVarName{Yvar}; 2620 % eval(['UvData.YMax=max(UvData.Field.' YName ');']) 2621 % eval(['UvData.YMin=min(UvData.Field.' YName ');']) 2622 % else 2623 % testcoord_y=0; 2624 % if ~testcoord_y 2625 % UvData.YMin=1; 2626 % UvData.YMax=UvData.Field.DimValue(DimIndex(1)); 2627 % end 2628 % end 2629 % DY=(UvData.YMax-UvData.YMin)/(nbpoints_y-1); 2630 % nbpoints_x=UvData.Field.DimValue(DimIndex(2)); 2631 % Xvar=VarType{imax}.coord_x; 2632 % if Xvar~=0 % x is a dimension variable 2633 % XName=UvData.Field.ListVarName{Xvar}; 2634 % eval(['UvData.XMax=max(UvData.Field.' XName ');']) 2635 % eval(['UvData.XMin=min(UvData.Field.' XName ');']) 2636 % else 2637 % testcoord_x=0; 2638 % if ~testcoord_x 2639 % UvData.XMin=1; 2640 % UvData.XMax=UvData.Field.DimValue(DimIndex(2)); 2641 % end 2642 % end 2643 % DX=(UvData.XMax-UvData.XMin)/(nbpoints_x-1); 2644 % Field.Mesh= sqrt(DX*DY); 2645 % end 2646 % end 2647 2648 %create a default projection menuplane 2557 UvData.Field.YMax=YMax; 2558 UvData.Field.YMin=YMin; 2559 2560 %% create a default projection menuplane 2649 2561 UvData.Object{1}.Style='plane';%main plotting plane 2650 2562 UvData.Object{1}.ProjMode='projection';%main plotting plane 2563 UvData.Object{1}.DisplayHandle_uvmat=[]; %plane not visible in uvmat 2564 2565 2566 %% 3D case (menuvolume) 2567 if NbDim==3% && UvData.NewSeries 2568 test_set_object=1; 2569 hset_object=findobj(allchild(0),'tag','set_object'); 2570 ZBounds(1)=UvData.Field.ZMin; %minimum for the Z slider 2571 ZBounds(2)=UvData.Field.ZMax;%maximum for the Z slider 2572 if ~isempty(hset_object) 2573 hhset_object=guidata(hset_object); 2574 ZBounds_old(1)=get(hhset_object.z_slider,'Min'); 2575 ZBounds_old(2)=get(hhset_object.z_slider,'Max'); 2576 if isequal(ZBounds_old,ZBounds) 2577 test_set_object=0; 2578 else 2579 delete(test_set_object); 2580 end 2581 end 2582 if test_set_object% reinitiate set_object 2583 delete_object(1); 2584 UvData.Object{1}.Style='plane';%main plotting plane 2585 UvData.Object{1}.ProjMode='projection';%main plotting plane 2586 UvData.Object{1}.DisplayHandle_uvmat=[]; %plane not visible in uvmat 2587 UvData.Object{1}.NbDim=NbDim;%test for 3D objects 2588 UvData.Object{1}.RangeZ=UvData.Field.Mesh;%main plotting plane 2589 UvData.Object{1}.Coord(1,3)=(UvData.Field.ZMin+UvData.Field.ZMax)/2;%section at a middle plane chosen 2590 UvData.Object{1}.Phi=0; 2591 UvData.Object{1}.Theta=0; 2592 UvData.Object{1}.Psi=0; 2593 UvData.Object{1}.HandlesDisplay=plot(0,0,'Tag','proj_object');% A REVOIR 2594 PlotHandles=get_plot_handles(handles); 2595 UvData.Object{1}.Name='1-PLANE'; 2596 UvData.Object{1}.enable_plot=1; 2597 set_object(UvData.Object{1},PlotHandles,ZBounds); 2598 set(handles.list_object_1,'Value',1); 2599 end 2600 %multilevel case (single menuplane in a 3D space) 2601 elseif isfield(UvData,'Z') 2602 if isfield(UvData,'CoordType')&& isequal(UvData.CoordType,'phys') && isfield(UvData,'XmlData') 2603 XmlData=UvData.XmlData; 2604 if isfield(XmlData,'PlanePos') 2605 UvData.Object{1}.Coord=XmlData.PlanePos(UvData.ZIndex,:); 2606 end 2607 if isfield(XmlData,'PlaneAngle') 2608 siz=size(XmlData.PlaneAngle); 2609 indangle=min(siz(1),UvData.ZIndex);%take first angle if a single angle is defined (translating scanning) 2610 UvData.Object{1}.Phi=XmlData.PlaneAngle(indangle,1); 2611 UvData.Object{1}.Theta=XmlData.PlaneAngle(indangle,2); 2612 UvData.Object{1}.Psi=XmlData.PlaneAngle(indangle,3); 2613 end 2614 elseif isfield(UvData,'ZIndex') 2615 UvData.Object{1}.ZObject=UvData.ZIndex; 2616 end 2617 end 2651 2618 if ~isfield(UvData.Object{1},'plotaxes') 2652 2619 UvData.Object{1}.plotaxes=handles.axes3;%default plotting axis 2653 2620 set(handles.list_object_1,'Value',1); 2654 2621 set(handles.list_object_1,'String',{'1-PLANE'}); 2655 end2656 2657 %3D case (menuvolume)2658 if NbDim==3 && UvData.NewSeries2659 UvData.Object{1}.NbDim=UvData.NbDim;%test for 3D objects2660 UvData.Object{1}.RangeZ=UvData.Field.Mesh;%main plotting plane2661 UvData.Object{1}.Coord(1,3)=(UvData.Field.ZMin+UvData.Field.ZMax)/2;%section at a middle plane chosen2662 UvData.Object{1}.Phi=0;2663 UvData.Object{1}.Theta=0;2664 UvData.Object{1}.Psi=0;2665 UvData.Object{1}.HandlesDisplay=plot(0,0,'Tag','proj_object');% A REVOIR2666 PlotHandles=get_plot_handles(handles);2667 ZBounds(1)=UvData.Field.ZMin; %minimum for the Z slider2668 ZBounds(2)=UvData.Field.ZMax;%maximum for the Z slider2669 UvData.Object{1}.Name='1-PLANE';2670 UvData.Object{1}.enable_plot=1;2671 set_object(UvData.Object{1},PlotHandles,ZBounds);2672 set(handles.list_object_1,'Value',1);2673 %multilevel case (single menuplane in a 3D space)2674 elseif isfield(UvData,'Z')2675 if isfield(UvData,'CoordType')&& isequal(UvData.CoordType,'phys') && isfield(UvData,'XmlData')2676 XmlData=UvData.XmlData;2677 if isfield(XmlData,'PlanePos')2678 UvData.Object{1}.Coord=XmlData.PlanePos(UvData.ZIndex,:);2679 end2680 if isfield(XmlData,'PlaneAngle')2681 siz=size(XmlData.PlaneAngle);2682 indangle=min(siz(1),UvData.ZIndex);%take first angle if a single angle is defined (translating scanning)2683 UvData.Object{1}.Phi=XmlData.PlaneAngle(indangle,1);2684 UvData.Object{1}.Theta=XmlData.PlaneAngle(indangle,2);2685 UvData.Object{1}.Psi=XmlData.PlaneAngle(indangle,3);2686 end2687 elseif isfield(UvData,'ZIndex')2688 UvData.Object{1}.ZObject=UvData.ZIndex;2689 end2690 2622 end 2691 2623 … … 3569 3501 set(handles.uvmat,'UserData',UvData) 3570 3502 setfield(handles);% update the field structure ('civ1'....) 3571 if ~isfield(UvData,'NewSeries')| isequal(UvData.NewSeries,0)3503 if ~isfield(UvData,'NewSeries')||isequal(UvData.NewSeries,0) 3572 3504 run0_Callback(hObject, eventdata, handles) 3573 3505 end … … 3830 3762 npx=size(UvData.Field.A,2); 3831 3763 npy=size(UvData.Field.A,1); 3832 xi= [0.5:npx-0.5];3833 yi= [0.5:npy-0.5];3764 xi=0.5:npx-0.5; 3765 yi=0.5:npy-0.5; 3834 3766 [Xi,Yi]=meshgrid(xi,yi); 3835 3767 if isfield(UvData,'Object') … … 3884 3816 RootPath=get(handles.RootPath,'String'); 3885 3817 RootFile=get(handles.RootFile,'String'); 3886 if ~isempty(RootFile)& (isequal(RootFile(1),'/')| isequal(RootFile(1),'\'))3818 if ~isempty(RootFile)&&(isequal(RootFile(1),'/')|| isequal(RootFile(1),'\')) 3887 3819 RootFile(1)=[]; 3888 3820 end … … 4184 4116 Amax=double(max(max(max(FieldHisto))));%max of image 4185 4117 if isequal(Amin,Amax) 4186 Histo.Txt=['uniform field =' num2str(Amin)];4118 msgbox_uvmat('WARNING',['uniform field =' num2str(Amin)]); 4187 4119 else 4188 Histo.ListVarName={FieldName,'histo'}; 4189 if numel(nxy)==2 4190 Histo.VarDimName={FieldName,FieldName}; %dimensions for the histogram 4191 else %color images 4192 Histo.VarDimName={FieldName,{FieldName,'rgb'}}; %dimensions for the histogram 4193 end 4194 %unit 4195 units=[]; %default 4196 for ivar=1:numel(Field.ListVarName) 4197 if strcmp(Field.ListVarName{ivar},FieldName) 4198 if isfield(Field,'VarAttribute') && numel(Field.VarAttribute)>=ivar && isfield(Field.VarAttribute{ivar},'units') 4199 units=Field.VarAttribute{ivar}.units; 4200 break 4120 Histo.ListVarName={FieldName,'histo'}; 4121 if isequal(Field.NbDim,3) 4122 Histo.VarDimName={FieldName,FieldName}; %dimensions for the histogram 4123 else 4124 if numel(nxy)==2 4125 Histo.VarDimName={FieldName,FieldName}; %dimensions for the histogram 4126 else 4127 Histo.VarDimName={FieldName,{FieldName,'rgb'}}; %dimensions for the histogram 4201 4128 end 4202 4129 end 4203 end 4204 if ~isempty(units) 4205 Histo.VarAttribute{1}.units=units; 4206 end 4207 eval(['Histo.' FieldName '=linspace(Amin,Amax,50);'])%absissa values for histo 4208 for col=1:size(FieldHisto,3) 4209 B=FieldHisto(:,:,col); 4210 C=reshape(double(B),1,nxy(1)*nxy(2));% reshape in a vector 4211 eval(['Histo.histo(:,col)=hist(C, Histo.' FieldName ');']); %calculate histogram 4212 end 4213 set(haxes,'XLimMode','auto')%reset auto mode (after zoom effect) 4214 set(haxes,'YLimMode','auto') 4215 plot_field(Histo,haxes); 4130 %unit 4131 units=[]; %default 4132 for ivar=1:numel(Field.ListVarName) 4133 if strcmp(Field.ListVarName{ivar},FieldName) 4134 if isfield(Field,'VarAttribute') && numel(Field.VarAttribute)>=ivar && isfield(Field.VarAttribute{ivar},'units') 4135 units=Field.VarAttribute{ivar}.units; 4136 break 4137 end 4138 end 4139 end 4140 if ~isempty(units) 4141 Histo.VarAttribute{1}.units=units; 4142 end 4143 eval(['Histo.' FieldName '=linspace(Amin,Amax,50);'])%absissa values for histo 4144 if isequal(Field.NbDim,3) 4145 C=reshape(double(FieldHisto),1,[]);% reshape in a vector 4146 eval(['Histo.histo(:,1)=hist(C, Histo.' FieldName ');']); %calculate histogram 4147 else 4148 for col=1:size(FieldHisto,3) 4149 B=FieldHisto(:,:,col); 4150 C=reshape(double(B),1,nxy(1)*nxy(2));% reshape in a vector 4151 eval(['Histo.histo(:,col)=hist(C, Histo.' FieldName ');']); %calculate histogram 4152 end 4153 end 4154 set(haxes,'XLimMode','auto')%reset auto mode (after zoom effect) 4155 set(haxes,'YLimMode','auto') 4156 plot_field(Histo,haxes); 4216 4157 end 4217 4158 end … … 4376 4317 % colcode.CName= list_code{index_code(1)}; % selected field used for vector color 4377 4318 colcode.FixedCbounds=1; 4378 vec_C=colcode.MinC+(colcode.MaxC-colcode.MinC)* [0.5:width-0.5]/width;%sample of vec_C values from min to max4319 vec_C=colcode.MinC+(colcode.MaxC-colcode.MinC)*(0.5:width-0.5)/width;%sample of vec_C values from min to max 4379 4320 [colorlist,col_vec]=set_col_vec(colcode,vec_C); 4380 4321 oneheight=ones(1,height); … … 4510 4451 hother=findobj('Tag','proj_object');%find all the proj objects 4511 4452 for iobj=1:length(hother) 4512 if isequal(get(hother(iobj),'Type'),'rectangle')| isequal(get(hother(iobj),'Type'),'patch')4453 if isequal(get(hother(iobj),'Type'),'rectangle')||isequal(get(hother(iobj),'Type'),'patch') 4513 4454 set(hother(iobj),'EdgeColor','b') 4514 4455 if isequal(get(hother(iobj),'FaceColor'),'m') … … 4791 4732 end 4792 4733 end 4793 % flag=~flag;4734 4794 4735 %mask name 4795 4736 RootPath=get(handles.RootPath,'String'); 4796 4737 RootFile=get(handles.RootFile,'String'); 4797 if ~isempty(RootFile)& (isequal(RootFile(1),'/')| isequal(RootFile(1),'\'))4738 if ~isempty(RootFile)&&(isequal(RootFile(1),'/')|| isequal(RootFile(1),'\')) 4798 4739 RootFile(1)=[]; 4799 4740 end
Note: See TracChangeset
for help on using the changeset viewer.