xyzvcheck.cpp

来自「实现VC与MATLAB的无缝对接」· C++ 代码 · 共 186 行

CPP
186
字号
  #include "matlib.h"
  #pragma hdrstop
  
  #include "xyzvcheck.h"
  
  
  Mm xyzvcheck(Mm x, Mm y, Mm z, Mm data, i_o_t, Mm& msg__o, Mm& nx__o, Mm& ny__o, Mm& nz__o) {
    begin_scope
    x.setname("x"); y.setname("y"); z.setname("z"); data.setname("data"); 
    dMm(msg); dMm(nx); dMm(ny); dMm(nz); dMm(sz); dMm(nonempty); 
    
    #line 1 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    call_stack_begin;
    #line 1 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    // nargin, nargout entry code
    double old_nargin=nargin_val; if (!nargin_set) nargin_val=4.0;
    nargin_set=0;
    double old_nargout=nargout_val; if (!nargout_set) nargout_val=4.0;
    nargout_set=0;
    
    // translated code
    
    #line 2 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    //XYZVCHECK  Check arguments to 3D scalar data routines.
    #line 3 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    //   [MSG,X,Y,Z] = XYZCHK(X,Y,Z,V) checks the input aguments
    #line 4 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    //   and returns either an error message in MSG or valid X,Y,Z.
    
    #line 6 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    //   Copyright (c) 1984-98 by The MathWorks, Inc.
    #line 7 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    //   $Revision: 1.1 $  $Date: 1998/05/13 23:26:56 $
    
    #line 9 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   msg = TM("");
    #line 10 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   nx = x;
    #line 11 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   ny = y;
    #line 12 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   nz = z;
    
    #line 14 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   sz = size(data);
    
    #line 16 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   if (istrue(ndims(data)!=3.0)) {
      #line 17 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     msg = TM("V must be a 3D array.");
      #line 18 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     goto return_from_xyzvcheck;
      #line 19 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    }
    #line 20 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   if (istrue(min(sz)<2.0)) {
      #line 21 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     msg = TM("V must be size 2x2x2 or greater.");
      
      #line 22 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     goto return_from_xyzvcheck;
      #line 23 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    }
    
    #line 25 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   nonempty = !(BR(isempty(x)),isempty(y),isempty(z));
    #line 26 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   if (istrue(any(nonempty))&&istrue(!all(nonempty))) {
      #line 27 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     msg = TM("X,Y,Z must all be empty or all non-empty.");
      #line 28 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     goto return_from_xyzvcheck;
      #line 29 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    }
    
    #line 31 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   if (istrue(!isempty(nx))&&istrue(!isequal(size(nx),sz,Mc()))) {
      #line 32 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     nx = nx(c_p);
      #line 33 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     if (istrue(length(nx)!=sz(2.0))) {
        #line 34 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       msg = TM("The size of X must match the size of V or the number of columns of V.");
        #line 35 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       goto return_from_xyzvcheck;
        #line 36 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
      } else {
        
        #line 37 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       nx = repmat(ctranspose(nx),(BR(sz(1.0)),1.0,sz(3.0)));
        #line 38 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
      }
      #line 39 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    }
    
    #line 41 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   if (istrue(!isempty(ny))&&istrue(!isequal(size(ny),sz,Mc()))) {
      #line 42 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     ny = ny(c_p);
      #line 43 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     if (istrue(length(ny)!=sz(1.0))) {
        #line 44 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       msg = TM("The size of Y must match the size of V or the number of rows of V.");
        #line 45 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       goto return_from_xyzvcheck;
        #line 46 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
      } else {
        
        #line 47 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       ny = repmat(ny,(BR(1.0),sz(2.0),sz(3.0)));
        #line 48 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
      }
      #line 49 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    }
    
    #line 51 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_   if (istrue(!isempty(nz))&&istrue(!isequal(size(nz),sz,Mc()))) {
      #line 52 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     nz = nz(c_p);
      #line 53 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_     if (istrue(length(nz)!=sz(3.0))) {
        #line 54 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       msg = TM("The size of Z must match the size of V or the number of pages of V.");
        #line 55 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       goto return_from_xyzvcheck;
        #line 56 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
      } else {
        
        #line 57 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
_       nz = repmat(reshape(nz,(BR(1.0),1.0,length(nz))),(BR(sz(1.0)),sz(2.0),1.0));
        #line 58 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
      }
      #line 59 "g:/matlabr11/toolbox/matlab/specgraph/private/xyzvcheck.m"
    }
    
    
    return_from_xyzvcheck: call_stack_end;
    
    // nargin, nargout exit code
    nargin_val=old_nargin; nargout_val=old_nargout;
    
    // function exit code
    x.setname(NULL); y.setname(NULL); z.setname(NULL); data.setname(NULL); 
    msg__o=msg; nx__o=nx; ny__o=ny; nz__o=nz; 
    return x_M;
    end_scope
  }
  
  
  Mm xyzvcheck(Mm x, Mm y, Mm z, Mm data) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=4.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=1.0; nargout_set=1;
    dMm(msg__o); dMm(nx__o); dMm(ny__o); dMm(nz__o); 
    xyzvcheck(x, y, z, data, i_o, msg__o, nx__o, ny__o, nz__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return(msg__o);
    end_scope
  }
  
  Mm xyzvcheck(Mm x, Mm y, Mm z, Mm data, i_o_t, Mm& msg__o, Mm& nx__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=4.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=2.0; nargout_set=1;
    dMm(ny__o); dMm(nz__o); 
    xyzvcheck(x, y, z, data, i_o, msg__o, nx__o, ny__o, nz__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  
  Mm xyzvcheck(Mm x, Mm y, Mm z, Mm data, i_o_t, Mm& msg__o, Mm& nx__o, Mm& ny__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=4.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=3.0; nargout_set=1;
    dMm(nz__o); 
    xyzvcheck(x, y, z, data, i_o, msg__o, nx__o, ny__o, nz__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?