⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isovalue.cpp

📁 实现VC与MATLAB的无缝对接
💻 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 + -