Changeset 873 for trunk/src/plot_field.m
- Timestamp:
- Feb 17, 2015, 1:46:13 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/plot_field.m
r872 r873 222 222 223 223 %% text display 224 htext=findobj(hfig,'Tag','TableDisplay'); 225 hchecktable=findobj(hfig,'Tag','CheckTable'); 226 if ~isempty(htext)&&~isempty(hchecktable) 227 if isempty(index_0D) 228 % set(htext,'Data',{}) 229 % set(htext,'visible','off') 230 % set(hchecktable,'visible','off') 231 % set(hchecktable,'Value',0) 232 else 233 errormsg=plot_text(Data,CellInfo(index_0D),htext); 234 set(htext,'visible','on') 235 set(hchecktable,'visible','on') 236 set(hchecktable,'Value',1) 237 end 238 set(hfig,'Unit','pixels'); 239 set(htext,'Unit','pixels') 240 PosFig=get(hfig,'Position'); 241 % case of no plot with view_field: only text display 242 if strcmp(get(hfig,'Tag'),'view_field') 243 if isempty(index_1D) && isempty(index_2D)% case of no plot: only text display 244 set(haxes,'Visible','off') 245 PosTable=get(htext,'Position'); 246 set(hfig,'Position',[PosFig(1) PosFig(2) PosTable(3) PosTable(4)]) 247 else 248 set(haxes,'Visible','on') 249 set(hfig,'Position',[PosFig(1) PosFig(2) 877 677])%default size for view_field 250 end 251 end 252 end 253 224 if ~(isfield(PlotParamOut,'Axes')&&isfield(PlotParamOut.Axes,'TextDisplay')&&(PlotParamOut.Axes.TextDisplay)) % if text is not already given as statistics 225 htext=findobj(hfig,'Tag','TableDisplay'); 226 hchecktable=findobj(hfig,'Tag','CheckTable'); 227 if ~isempty(htext)&&~isempty(hchecktable) 228 if isempty(index_0D) 229 % set(htext,'Data',{}) 230 % set(htext,'visible','off') 231 % set(hchecktable,'visible','off') 232 % set(hchecktable,'Value',0) 233 else 234 errormsg=plot_text(Data,CellInfo(index_0D),htext); 235 set(htext,'visible','on') 236 set(hchecktable,'visible','on') 237 set(hchecktable,'Value',1) 238 end 239 set(hfig,'Unit','pixels'); 240 set(htext,'Unit','pixels') 241 PosFig=get(hfig,'Position'); 242 % case of no plot with view_field: only text display 243 if strcmp(get(hfig,'Tag'),'view_field') 244 if isempty(index_1D) && isempty(index_2D)% case of no plot: only text display 245 set(haxes,'Visible','off') 246 PosTable=get(htext,'Position'); 247 set(hfig,'Position',[PosFig(1) PosFig(2) PosTable(3) PosTable(4)]) 248 else 249 set(haxes,'Visible','on') 250 set(hfig,'Position',[PosFig(1) PosFig(2) 877 677])%default size for view_field 251 end 252 end 253 end 254 end 254 255 %% display error message 255 256 if ~isempty(errormsg) … … 574 575 %% give statistics for pdf 575 576 ind_var=find(testplot); 576 if numel(ind_var)==1 && isfield(data,'VarAttribute') &&numel(data.VarAttribute)>=ind_var &&... 577 isfield(data.VarAttribute{ind_var},'Role') && strcmp(data.VarAttribute{ind_var}.Role,'histo') 578 pdf_val=data.(data.ListVarName{ind_var}); 579 x=coord_x{1}; 580 TableData=cell(12,2); 581 TableData(:,1)={'SampleNbr';'Mean';'RMS';'Skewness';'Kurtosis';... 582 'Min';'FirstCentile';'FirstDecile';'Median';'LastDecile';'LastCentile';'Max'}; 583 Val=zeros(12,1); 584 Val(1)=sum(pdf_val);% total sample number 585 pdf_val=pdf_val/Val(1);% normalised pdf 586 Val(2)=sum(x.*pdf_val);%Mean 587 x=x-Val(2); %centered variable 588 Variance=sum(x.*x.*pdf_val); 589 Val(3)=sqrt(Variance); 590 Val(4)=(sum(x.*x.*x.*pdf_val))/(Variance*Val(3));%skewness 591 Val(5)=(sum(x.*x.*x.*x.*pdf_val))/(Variance*Variance);%kurtosis 592 Val(6)=min(x); 593 cumpdf=cumsum(pdf_val); 594 ind_centile=find(cumpdf>=0.01,1); 595 Val(7)=x(ind_centile); 596 ind_decile=find(cumpdf>=0.1,1); 597 Val(8)=x(ind_decile); 598 ind_median=find(cumpdf>= 0.5,1); 599 Val(9)=x(ind_median); 600 ind_decile=find(cumpdf>=0.9,1); 601 Val(10)=x(ind_decile); 602 ind_centile=find(cumpdf>=0.99,1); 603 Val(11)=x(ind_centile); 604 Val(12)=max(x); 605 TableData(:,2)=mat2cell(Val,ones(12,1),1) 606 TableData=[TableData(1:5,:);{' -- centered','stat: --'};TableData(6:12,:)]; 607 htable=findobj(hfig,'Tag','TableDisplay') 577 TableData={'Variable';'SampleNbr';'bin size';'Mean';'RMS';'Skewness';'Kurtosis';' centered ';... 578 'Min';'FirstCentile';'FirstDecile';'Median';'LastDecile';'LastCentile';'Max'}; 579 CoordinatesOut.TextDisplay=0; 580 for icell=1:numel(CellInfo) 581 if isfield(CellInfo{icell},'VarIndex_histo') 582 check_stat=1; 583 CoordinatesOut.TextDisplay=1; 584 VarName=data.ListVarName{CellInfo{icell}.CoordIndex}; 585 pdf_val=data.(data.ListVarName{CellInfo{icell}.VarIndex_histo}); 586 x=coord_x{icell}; 587 Val=zeros(12,1); 588 Val(1)=sum(pdf_val);% total sample number 589 Val(7)=min(x); 590 Val(13)=max(x); 591 Val(2)=(Val(13)-Val(7))/(numel(x)-1);%bin size 592 pdf_val=pdf_val/Val(1);% normalised pdf 593 Val(3)=sum(x.*pdf_val);%Mean 594 x=x-Val(3); %centered variable 595 Variance=sum(x.*x.*pdf_val); 596 Val(4)=sqrt(Variance); 597 Val(5)=(sum(x.*x.*x.*pdf_val))/(Variance*Val(4));%skewness 598 Val(6)=(sum(x.*x.*x.*x.*pdf_val))/(Variance*Variance);%kurtosis 599 cumpdf=cumsum(pdf_val); 600 ind_centile=find(cumpdf>=0.01,1);% first index with cumsum >=0.01 601 Val(8)=(cumpdf(ind_centile)-0.01)*x(ind_centile-1)+(0.01-cumpdf(ind_centile-1))*x(ind_centile); 602 Val(8)=Val(8)/(cumpdf(ind_centile)-cumpdf(ind_centile-1));%linear interpolation near ind_centile 603 ind_decile=find(cumpdf>=0.1,1); 604 Val(9)=(cumpdf(ind_decile)-0.1)*x(ind_decile-1)+(0.1-cumpdf(ind_decile-1))*x(ind_decile); 605 Val(9)=Val(9)/(cumpdf(ind_decile)-cumpdf(ind_decile-1));%linear interpolation near ind_decile; 606 ind_median=find(cumpdf>= 0.5,1); 607 Val(10)=(cumpdf(ind_median)-0.5)*x(ind_median-1)+(0.5-cumpdf(ind_median-1))*x(ind_median); 608 Val(10)=Val(10)/(cumpdf(ind_median)-cumpdf(ind_median-1));%linear interpolation near ind_median; 609 % Val(9)=x(ind_median); 610 ind_decile=find(cumpdf>=0.9,1); 611 Val(11)=(cumpdf(ind_decile)-0.9)*x(ind_decile-1)+(0.9-cumpdf(ind_decile-1))*x(ind_decile); 612 Val(11)=Val(11)/(cumpdf(ind_decile)-cumpdf(ind_decile-1));%linear interpolation near ind_median; 613 ind_centile=find(cumpdf>=0.99,1); 614 Val(12)=(cumpdf(ind_centile)-0.99)*x(ind_centile-1)+(0.99-cumpdf(ind_centile-1))*x(ind_centile); 615 Val(12)=Val(12)/(cumpdf(ind_centile)-cumpdf(ind_centile-1));%linear interpolation near ind_centile; 616 Val(13)=max(x); 617 Column=mat2cell(Val,ones(13,1),1); 618 Column=[{VarName};Column(1:6);{'stat: --'};Column(7:13)]; 619 TableData=[TableData Column]; 620 end 621 end 622 if CoordinatesOut.TextDisplay; 623 disp(TableData); 624 htable=findobj(hfig,'Tag','TableDisplay'); 608 625 set(htable,'Data',TableData) 609 626 set(htable,'Visible','on')
Note: See TracChangeset
for help on using the changeset viewer.