. n* y3 I1 H& N- f! Q- F7 K' g' rint i,j,k; # {5 v; X, t8 wint index;0 k5 ]6 u4 J3 O8 y/ f
double* pr=NULL;6 e. I* u* a: O: Z1 Y
double* pi=NULL; , G( K# ^* a+ o7 oint M,N;' f( ^0 n5 y0 G& M
int ndim;$ d: h; |% u1 y: T2 @
int dims[2];4 s1 X; U" Q8 f: y
for (i=0;i<nrhs;i++)0 b4 N" W4 K- g% J5 K
{1 Y' R$ }0 N. h+ D+ o+ ^5 k
if ((mxIsDouble(prhs))&&(mxGetNumberOfDimensions(prhs)==2))# Y3 a3 D0 g0 ~5 K2 J4 u0 O$ Z
{ 6 e, l4 g7 A' n3 w% V) ]7 @" n pr=mxGetPr(prhs);4 b, U' h* v1 u5 T6 G! [3 G
pi=mxGetPi(prhs); % Y4 |5 y" ~8 m/ ^) Q+ v, f2 _ M=mxGetM(prhs); z* N* k4 |; v8 a
N=mxGetN(prhs); 4 z# v! B$ {) e8 S" U ndim=mxGetNumberOfDimensions(prhs); . ]' c+ w& `5 w3 c! O * L; G1 J6 h2 |/ H0 y% t7 [4 s# E5 N mexPrintf("变量%d:\n",i); ! O2 B& d H p5 j/ o2 q for (j=0;j<M;j++) J9 N9 H( x! x" I
{ 2 P& ?) y+ ^+ x6 T, P7 i5 t) E dims[0]=j;4 Q5 q2 W8 Q* C% W
for (k=0;k<N;k++) 0 Y% y8 L8 E) ? { ! L" p3 `0 b2 G3 W; J dims[1]=k;* l% q1 i$ Y- e# E. D L! d9 W
index=mxCalcSingleSubscript(prhs,ndim,dims); & A1 j* n& Y6 O- P if (pi==NULL) 7 F7 ]* w$ w# V6 u5 b: b* R {4 y; s) Y8 o" s5 E
mexPrintf("%6.2f",pr[index]); ) w9 Z6 D( w# p# [ } 5 \' B5 w+ x4 W else{ 2 c9 S7 @" F! Y mexPrintf("%6.2f+ %6.2fj",pr[index],pi[index]); # S! g0 c! z3 T# {4 v }" ?3 v: t5 f5 e. H m
} - m" |) y# V$ p* K* R mexPrintf("\n");4 t% B+ {0 h8 q& Q
2 e" x+ f i% m5 E' D5 Y9 U
} # c% c; |& A) O * Z5 Z. a6 h7 h8 Y
} ) j; @! p4 R8 G else{/ I( A# J! m# B( z. q( G. O8 d
mexPrintf("input NUMB %d matrix is not 2 dims&double numerical array\n",i);7 o) e" \8 F; z
} 6 _1 V# }. a) i1 h7 E ; |2 t3 }5 p& ?. \0 _ 0 C4 N8 C, C1 g+ O( C- u! [* g}: U" P: \$ B+ X; N, h( y" }, X
. ^5 ]6 O+ f E8 M: J0 Y}( u$ u' Q: @! j8 d8 n6 R6 ]/ o
! n K. b- v& G4 F. ?Result: + [* u8 x; G9 L; w% ^ 8 V( ^. M ~/ T d( Z' z>>mex test.cpp$ m; p( P2 r: C1 \" }2 a9 a
>> test(a,b,c) - R& b+ m9 ~, Q* A. p5 m8 F变量0: 5 g% }# `# I/ g Y* L0.35 0.62 0.83$ G* I/ t4 K3 j4 Q9 N! }
0.20 0.47 0.59 ( m) O$ w' d- H3 J- O/ U2 B& x# f6 o0.25 0.35 0.556 U1 u% S1 I: [. \8 C6 i& M* R/ E
变量1: 9 g, m# O, j0 }, u: h# Q0.92 0.38 0.53 0.57 & l& U) _4 S- C/ S% M8 \% _9 ?0.29 0.57 0.78 0.472 M( ?0 Y! D6 K( Y1 F& g
0.76 0.08 0.93 0.010 f3 w1 _5 `% E& {) t
0.75 0.05 0.13 0.34. e/ L [& r. V/ r
变量2: - G0 H1 `+ ^4 J1 M0.16+ 0.87j 0.60+ 0.43j 0.45+ 0.14j 0.83+ 0.85j 0.11+ 0.08j: L n% w: Y0 O; p# C8 r
0.79+ 0.08j 0.26+ 0.91j 0.08+ 0.87j 0.54+ 0.62j 0.96+ 0.24j * K2 u* b8 \" d4 L0.31+ 0.40j 0.65+ 0.18j 0.23+ 0.58j 1.00+ 0.35j 0.00+ 0.12j, h, k- D! i: {4 g! y9 p
0.53+ 0.26j 0.69+ 0.26j 0.91+ 0.55j 0.08+ 0.51j 0.77+ 0.18j / D( C( S+ Y$ p. a2 T0.17+ 0.80j 0.75+ 0.15j 0.15+ 0.14j 0.44+ 0.40j 0.82+ 0.24j + o% F3 [) I! t>> help test+ y0 w g$ X+ H0 ?6 a7 U
本程序用于调试mx______函数.1 Q2 D. o/ [$ j
8 u, _. c, m1 M# |% c, Q7 c q# F7 g( v8 m
本文来自: 高校自动化网(Www.zdh1909.com) 详细出处参考(转载请保留本链接):http://www.zdh1909.com/html/matlab/14744.html ) E. z6 c& R9 \( \ P' _6 U e. y
下面是其附件,内容一样,方便下载
Matlab调用c程序.doc(41.5 KB, 下载次数: 10)