QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4955|回复: 2
打印 上一主题 下一主题

求助:关于混合编程的错误,用mex编译就出现 - MATLAB 应用发布

[复制链接]
字体大小: 正常 放大
深叶子        

5

主题

7

听众

24

积分

升级  20%

  • TA的每日心情
    难过
    2014-9-22 12:14
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    自我介绍
    数学专业
    跳转到指定楼层
    1#
    发表于 2014-8-23 20:04 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    如何实现C语言与MATLAB接口,出现 E:\PROGRA~1\MATLAB\R2012\BIN\MEX.PL: Error: No file names given. .错误。
    4 o* @8 q# c9 _- \7 j  E3 J4 m这该怎么解决啊?$ P; I, q+ J/ d- F/ F
    》mex-setup: f, ]' z9 {% }: I' b
        Usage: & g1 E" U' R( A0 C8 C# a) X: c% W
            MEX [option1 ... optionN] sourcefile1 [... sourcefileN] 8 j# K+ c. @8 A4 a1 z
                [objectfile1 ... objectfileN] [libraryfile1 ... libraryfileN] 8 v4 e) H2 _1 h  s! r

    - |  `: _, z9 s; @9 G. P    Use the -help option for more information, or consult the MATLAB API Guide.
    : p" R  k  w+ f& @# J
    $ q7 h6 b% l% T, P" W1 V2 Y ; V# _3 ?" z6 m$ F( g, z
      E:\PROGRA~1\MATLAB\R2012\BIN\MEX.PL: Error: No file names given.
    % U5 `6 y  N$ x4 b 6 ?: O: [$ n8 S) J, ]
    Undefined function or variable 'setup'.
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    到 ...
    madio        

    3万

    主题

    1311

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    编译文件的时候后面要加上需要编译的文件的名字,貌似就是这个问题。Undefined function or variable 'setup'是不是mex后面没有加一个空格,你改成mex  -setup试试
    数学建模社会化
    回复

    使用道具 举报

    madio        

    3万

    主题

    1311

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    网上找到这个总结的不错,你可以借鉴!* O1 {1 q, z! Q4 s, v

    ! H. l* G& m$ y" [6 S- y7 b在matlab上使用libsvm工具箱使用错误及解决方法汇总
      X. }7 O6 O; X' D" L% o首先附上使用过程
    2 u/ I  \$ o0 i! estep1: 输入>>mex -setup
    $ K+ g0 O. P$ j   step2:
    3 m( `3 e  Y" V( E. _4 [   Please choose yourcompiler for building external interface (MEX) files:
    ( B0 B) K2 }' H+ O, I# L   Would you like mex to locate installed compilers [y]/n?        是否让matlab自动检测编译器可以选y
    3 ]. s/ _8 Z8 @+ l6 B  step3:" b. [, _2 e; @& C! x$ I# j
       Select a compiler:
    , R' c: t" C$ _  f: B2 ^9 {: @) y! N9 d- z2 q2 z/ n. z! V

    0 i( x: K5 m6 v     [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc 3 X; c& |/ }5 j* O
         [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 8 t6 l. e7 u  B4 c1 A) v  E. m
         [3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio 3 k* S% \$ ?) f6 j
         [0] None ; _' T& ]" e6 s/ }3 \- N
         [1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行  + T' u3 `8 i7 @/ k8 U* Q3 `1 Q; E
         我选择了 【2】: ~: m3 v; d6 C4 b/ o
        step4:7 n# s( x. @1 Q. X/ k. Z' _- _: c! r6 T
         Compiler: Microsoft Visual C++ 2008 SP1  4 s9 O& H( W3 o$ u) C
          Location:e:\Program Files\Microsoft Visual Studio 9.0 0 d$ B6 Q0 R( a: S* q8 i$ j" ^4 S
          Are thesecorrect [y]/n?  路径是否正确 是的就选y . O$ v0 a3 c. s2 P
          如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。8 b' u* I; M* k2 {6 q
    Step 5   8 ]2 j4 r4 q4 S- w3 s
    Make1 W  Q$ f# J5 Z- ]: }) P
    后面就是:
    8 k" ~7 p- p) I' Uload heart_scale.mat(此处无分号). C- M+ y) m( N! f* p  T# l% q6 p
    train = heart_scale_inst;  _7 M7 m7 q9 b. \
    train_label=heart_scale_label;1 w! @/ Q8 Q7 F' F" F
    test=train;% r3 y( U; d3 h$ w2 G
    test_label=train_label;
    * w3 P& n" i& O6 |) P! x3 Qmodel=svmtrain(train_label,train,'-c 2 -g0.01');
    * Y. S2 _3 f4 _) W[predict_label,accuracy]=svmpredict(test_label,test,model);4 V1 ]; |% B' M
    1- C8 ?* k! }! a3 u# a, x- c: U" Z% B
    make这一步报错
    4 l/ Q, Y0 f! ~% WError using mex (line 206)
    5 T0 G. `  L& n+ p: k. lUnable to complete successfully.2 G& v" t5 N/ m+ S  t2 H+ B4 e# C
    Error in make (line 1)
    # C5 K0 [9 Z5 f& ~/ d* Z% This make.m is for MATLAB and OCTAVE
    4 R$ N4 {0 T  X4 {" s6 A' lunder Windows, Mac, and Unix
    ' U( n0 ?" z7 G7 {! \: n/ B4 ~在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~5 T7 P& n( a" d  W! d- h" A

    : l+ J9 V4 S8 ~* H% M7 `2 J2 还有一个make这一步出现的错误3 Make时出错7 C& f" j9 |, U! e$ |8 J/ ?+ K: D$ Z0 |
    Undefined function orvariable 'make'
    , o6 r, C  i% ~* ]6 ~* r解决方法为:/ r- a) Y7 D) i8 x, @( O
    设置matlab的path * O5 _$ T! ]# X1 m! n, H
       方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)8 a! n4 Q2 T3 j" E0 Z- {
    还要记得把current folder 设为matlab所在的路径
    8 [0 I1 D; w& E& J# q3 输入load heart_scale.mat;报错3 }# }& F5 f6 l2 L+ w' P
    Error using load
    2 V# o4 {( c! ?Unable to read file heart_scale.mat;: No- C+ S+ l" B' R5 p/ z
    such file or directory.& e3 }) Y' N+ x; {  `
    这个问题是这样的,不应该有最后那个;   去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)
    2 R: i0 F9 n7 B/ i' K+ Z9 @4
    & O% _+ f" {' L; C0 L% p5 b" y$ H6 G; Oload 这一步报错  Q7 N/ j* _( _: A: Y  b; ^
    ??? Error using ==>load4 i& J6 q+ x& h+ P3 F
    Number of columns on line 2 of ASCII file D:\Program# l) K- C6 s9 H
    Files\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale1 E+ T6 [# q* J
    must be the same as previous lines.
    , r/ X, _0 }+ W: |  X- P官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)
    $ L4 m/ j# H" Q4 V( t一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()1 f) Z! j/ I5 y( _  K0 Z  d
    使用如下: [label_vector, instance_matrix] =libsvmread('filename');% B0 D' k0 y8 m. _% u
    此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');* f1 p. n) m8 w
    注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。
    ' c4 w; |$ h# W3 J6 S但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
    5 b7 c) w8 n$ f1 L% E6 J4 z5 D; f& K7 }/ O, v* `( J
    3 d( l$ @# X% a- k2 m

    $ ~9 @1 A0 ^* s) d! c  d. S' C4 U
    ! @: h6 T4 m' }) @, b5 到svmtrain这一步报错
    8 T% H: l/ q& m9 T7 s??? Errorusing ==>svmtrain at 1727 X, y  f$ Z! ^" t2 h
    Group mustbe a vector.$ }4 G8 s0 Q8 a: z  x: _
    是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了; F& f1 g4 s. E+ F, G
    在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱……
    数学建模社会化
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-9-9 23:11 , Processed in 0.587334 second(s), 61 queries .

    回顶部