QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5115|回复: 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. .错误。3 ^! A( t  w0 [6 A6 D
    这该怎么解决啊?
    ) e* J  V' I. D" B* d》mex-setup
    * h+ S- v) w% x# J+ p# X( }9 T' ]! l% c    Usage: # h4 V% [. X  C9 R0 P/ t
            MEX [option1 ... optionN] sourcefile1 [... sourcefileN] 7 A/ J: F, @* @9 q
                [objectfile1 ... objectfileN] [libraryfile1 ... libraryfileN] 7 T5 Z6 p: i. S5 d; L7 a8 G

    $ l0 m6 k9 L# }4 a  r. F8 p    Use the -help option for more information, or consult the MATLAB API Guide.
    4 P6 U6 L* e' E1 Z* w9 X 3 {/ h# s8 U* |) y+ m  S' P! q7 K

    6 c( F9 s4 ]$ c# A, T3 x; v2 F  E:\PROGRA~1\MATLAB\R2012\BIN\MEX.PL: Error: No file names given.
    * R0 z6 h* B; @7 H# H# x; f* j ( R" E$ [$ k: U( c! B
    Undefined function or variable 'setup'.
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    到 ...
    madio        

    3万

    主题

    1312

    听众

    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万

    主题

    1312

    听众

    5万

    积分

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

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

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

    群组数学建模培训课堂1

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

    群组Matlab讨论组

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

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

    网上找到这个总结的不错,你可以借鉴!
    9 O# h( J- D0 g! C' ^3 `
    ) g, D: q0 h6 y3 ]% W: Y. G在matlab上使用libsvm工具箱使用错误及解决方法汇总( ~% o! w* q5 _+ m! |7 w3 |$ w1 k: b1 n
    首先附上使用过程
    4 S4 w. f! l% m$ e$ v2 X+ istep1: 输入>>mex -setup7 W; i8 R8 H: I2 @7 M
       step2:
    . {) {7 U( q& C& U   Please choose yourcompiler for building external interface (MEX) files: 0 G# E. c* k7 s9 @3 P0 g/ N: W. F) v" w/ N
       Would you like mex to locate installed compilers [y]/n?        是否让matlab自动检测编译器可以选y
    ' G' o# k: H& E* n! j  step3:& c+ c5 L+ l6 a6 P0 x
       Select a compiler:6 ~* ]9 ^1 \1 i+ S3 y5 p* m8 L

    % b, Z: t+ D) {5 E) \6 }" v2 P! M; _; F8 V0 v# V
         [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc
    6 G" K) z, Q, h- X. n1 ~! B$ f     [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 1 h- u. H3 Q% U* V1 z
         [3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio & K# m; Z+ s( C9 v) s, P) l
         [0] None
    0 I* S' p3 i/ K6 I$ S/ t# S     [1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行  6 t+ I# @5 x* Z" `6 K5 Z
         我选择了 【2】
    8 m- U8 }2 ^9 ~- C    step4:1 o2 z: Y9 L/ l0 C$ |3 \
         Compiler: Microsoft Visual C++ 2008 SP1  2 i) ?4 ?- ?8 G
          Location:e:\Program Files\Microsoft Visual Studio 9.0 ( F; ^: h6 A, p5 p# T
          Are thesecorrect [y]/n?  路径是否正确 是的就选y ; @; @3 p  m" Q( C( G- w
          如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。
    . k. @" Q5 v5 c( K6 s+ LStep 5   # M' a4 B1 G; c& Z6 }
    Make
    8 E3 X3 ^5 Z9 W6 N+ w) W后面就是:  X9 H7 d9 U% D+ Q6 o! G
    load heart_scale.mat(此处无分号)5 K$ L/ x* Y) r- ^- |- m0 ?
    train = heart_scale_inst;
    $ F3 ^4 k6 V6 ~6 ftrain_label=heart_scale_label;0 x) g8 r/ o- m. W+ \
    test=train;( J9 e4 j) r1 v+ K0 l. l% e& X
    test_label=train_label;
    ' Q& G+ Y7 K; \+ L# Q% M" Emodel=svmtrain(train_label,train,'-c 2 -g0.01');5 O  {1 Y- m7 F7 @' A
    [predict_label,accuracy]=svmpredict(test_label,test,model);
    5 l- c/ N& \4 u" G1$ y1 S8 m' Y  ]5 S) X
    make这一步报错+ C9 m/ q( q' M* ~% b# M8 j
    Error using mex (line 206)6 f/ a; w* f: {
    Unable to complete successfully.9 l" m( [( Y2 T4 o
    Error in make (line 1)
    - k! ~7 |2 T: {8 t) z" u% This make.m is for MATLAB and OCTAVE7 R# w7 K6 F, X) N5 w; Y
    under Windows, Mac, and Unix
    ' `$ I3 K5 s9 s: p; P. b" n在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~
    , Y$ O' _3 T9 J! j1 {
    7 M$ o' o. e0 r2 Z3 e6 @$ `2 还有一个make这一步出现的错误3 Make时出错5 C/ u  ^" F) E9 J, H; N5 ~: _$ U
    Undefined function orvariable 'make', J1 P9 z/ `* W- |6 [4 n" a
    解决方法为:' _  M# y4 F2 w, N7 C0 ?+ h! g
    设置matlab的path
      Y* X' r. K: r% u   方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)
    1 _- K5 E3 ^: G' K( C还要记得把current folder 设为matlab所在的路径
    % f7 h" s6 U% @' A4 Z3 输入load heart_scale.mat;报错4 z$ [. P* N7 M& `# s. p+ T
    Error using load8 w/ p& K) r' b8 w
    Unable to read file heart_scale.mat;: No
    ! x% f, y+ f) R) p# zsuch file or directory.
    1 P0 D  q2 [. P这个问题是这样的,不应该有最后那个;   去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)
    2 u8 M, W( U# d. p" Q& x41 u, H) h; S$ P: ?4 |
    load 这一步报错; \2 C3 Z( S7 d2 V
    ??? Error using ==>load% P4 e" c3 o( _+ n
    Number of columns on line 2 of ASCII file D:\Program! V( N. {: a& q1 p$ g7 t8 h2 {
    Files\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale  c6 [5 D) L" G% P0 d4 u
    must be the same as previous lines.
    9 q4 {2 J- h# D" [官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)! `3 C# x) ?% V& N+ ^/ |) e2 [! U
    一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()3 j/ ?5 F5 d/ P! d
    使用如下: [label_vector, instance_matrix] =libsvmread('filename');
    - ]4 v: t6 y9 X( _此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');0 h4 y$ I8 n3 q. ?
    注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。
    2 o6 }' l: I1 H0 y但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
    3 ~% p+ x. S' P, u5 H
    ; `4 p, [% f; O* W) G6 R) v3 m8 }+ v& Y  G* J8 f3 r: p& A
    + O9 d* l& n% z

    2 Y6 o2 O9 T1 f7 A" s+ E% {) m5 到svmtrain这一步报错
    0 Y, E; ^9 r/ c9 U! B- Q! d??? Errorusing ==>svmtrain at 172. e  i4 n8 p# P5 e' p  G. a
    Group mustbe a vector.
    $ E( h' l: R7 e是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了+ Q/ e8 q. T5 Q  C6 \
    在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱……
    数学建模社会化
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-10 06:03 , Processed in 0.537640 second(s), 62 queries .

    回顶部