📄 isovalue.cpp
字号:
#include "matlib.h"
#pragma hdrstop
#include "isovalue.h"
Mm isovalue(Mm data) {
begin_scope
data.setname("data");
dMm(val); dMm(r); dMm(len); dMm(n); dMm(x); dMm(pos); dMm(q);
#line 1 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
call_stack_begin;
#line 1 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// nargin, nargout entry code
double old_nargin=nargin_val; if (!nargin_set) nargin_val=1.0;
nargin_set=0;
double old_nargout=nargout_val; if (!nargout_set) nargout_val=1.0;
nargout_set=0;
// translated code
#line 2 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
//ISOVALUE Isovalue calculator.
#line 3 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// VAL = ISOVALUE(V) calculates an isovalue from data V using hist
#line 4 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// function. Utility function used by ISOSURFACE and ISOCAPS.
#line 6 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// Copyright (c) 1984-98 by The MathWorks, Inc.
#line 7 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// $Revision: 1.1 $ $Date: 1998/05/13 23:26:53 $
#line 10 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// only use about 10000 samples
#line 11 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ r = 1.0;
#line 12 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ len = length(data(c_p));
#line 13 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ if (istrue(len>20000.0)) {
#line 14 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ r = floor(len/10000.0);
#line 15 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
}
#line 17 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ /*[n,x] = */hist(data(colon(1.0,r,data.size())),100.0,i_o,n,x);
#line 19 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// remove large first max value
#line 20 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ pos = find(n==max(n));
#line 21 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ pos = pos(1.0);
#line 22 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ q = max(n(colon(1.0,1.0,2.0)));
#line 23 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ if (istrue(pos<=2.0)&&istrue(q/(sum(n)/length(n))>10.0)) {
#line 24 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ n = n(colon(3.0,1.0,n.size()));
#line 25 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ x = x(colon(3.0,1.0,x.size()));
#line 26 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
}
#line 28 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
// get value of middle bar of non-small values
#line 29 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ pos = find(n<max(n)/50.0);
#line 30 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ if (istrue(length(pos)<90.0)) {
#line 31 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ x(pos) = nop_M;
#line 32 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
}
#line 33 "g:/matlabr11/toolbox/matlab/specgraph/private/isovalue.m"
_ val = x(floor(length(x)/2.0));
call_stack_end;
// nargin, nargout exit code
nargin_val=old_nargin; nargout_val=old_nargout;
// function exit code
data.setname(NULL);
return val;
end_scope
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -