QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5147|回复: 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. .错误。; F6 G8 w* y7 L  l5 }' \! e3 s; I" d1 v
    这该怎么解决啊?
    5 }7 }2 I; H; S$ B》mex-setup! z: R6 M4 r; `2 B" n. e1 K2 W
        Usage: ) L( t9 i  N$ t3 A
            MEX [option1 ... optionN] sourcefile1 [... sourcefileN] - K' g  }0 w( L
                [objectfile1 ... objectfileN] [libraryfile1 ... libraryfileN]
    3 _9 {) Y: R3 x  I2 t% v+ f 7 c9 m/ y: Q- v5 w+ u
        Use the -help option for more information, or consult the MATLAB API Guide.
    3 y7 T$ l& `1 B6 k, N$ O7 V7 O+ { 7 p. U, g, R% ]2 y. P: c: n
    3 R/ g+ T# s; s6 j& x8 I0 R
      E:\PROGRA~1\MATLAB\R2012\BIN\MEX.PL: Error: No file names given.
    . T+ Y! U. B: m2 @
    - D5 a5 i: h( tUndefined 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题讨论群组

    网上找到这个总结的不错,你可以借鉴!
    1 X3 x" o1 I  s2 A3 b7 D; B3 ]
    5 w& s1 ~2 B5 M' c7 D+ e: D0 ]9 q在matlab上使用libsvm工具箱使用错误及解决方法汇总
    " J- X5 V+ ~7 x  g' L首先附上使用过程
    $ ~6 W' {8 j/ W1 Y4 r. estep1: 输入>>mex -setup
    8 O  B# E: p$ Q- x! G, p: {/ W/ B$ B# D   step2:
    9 |( J& p. W5 u: H2 M9 K5 _   Please choose yourcompiler for building external interface (MEX) files:
    . i$ Z' p" \$ e2 U) p. n/ F   Would you like mex to locate installed compilers [y]/n?        是否让matlab自动检测编译器可以选y7 _2 h/ [5 [- j0 \6 P, H- Y
      step3:
    8 b6 B8 N- h2 E; w2 P2 x   Select a compiler:
    * w/ {3 U, e# _( N$ S3 _8 `6 X6 X5 S7 f1 Y! _. p9 B% p" c

    4 H* {5 k6 k2 `9 c/ j     [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc   ^: \3 y7 j9 m4 w
         [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 ' I& P# |: e; q( d
         [3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio
    , [# \/ N8 Z* C2 p- t: R     [0] None $ i# U8 F2 l, `  l7 m9 b
         [1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行  
    . v  L& _5 {9 [2 @     我选择了 【2】7 |1 @' A1 m# e$ a
        step4:
    / M; ^1 q: R9 h7 f     Compiler: Microsoft Visual C++ 2008 SP1  
    # I  p: |% |7 p, |      Location:e:\Program Files\Microsoft Visual Studio 9.0
    0 {3 W5 ]: R# w) S6 g( a( s      Are thesecorrect [y]/n?  路径是否正确 是的就选y , K4 R6 g( s9 E3 N1 z- i4 ~; S+ y/ e! W
          如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。
    % q* ~" G6 A# S+ o& p* ?Step 5   
    9 z! \6 i8 @6 N0 j$ E$ MMake* `" g0 |6 L" z! d
    后面就是:
    ! n4 U( I9 H6 nload heart_scale.mat(此处无分号)
    ! |, k7 ^& O, H$ etrain = heart_scale_inst;! j* ~* M. S4 ^5 d
    train_label=heart_scale_label;
    - {# W# G, \' Itest=train;' P* U1 Q$ q$ D! l( l; ~
    test_label=train_label;" y% V, _$ ~' c8 v4 \1 |
    model=svmtrain(train_label,train,'-c 2 -g0.01');
    : _) V. M7 A* m0 G6 o) @[predict_label,accuracy]=svmpredict(test_label,test,model);
    0 V5 P. _8 ?# s1
    : U( f, u8 C+ ?3 Fmake这一步报错/ i' U* g+ Y$ R
    Error using mex (line 206)
    . h8 |" J! A& M2 E( hUnable to complete successfully.5 y& `  U7 Q5 g# s9 d
    Error in make (line 1)
    6 t. _9 O0 f0 y  e7 o' X% This make.m is for MATLAB and OCTAVE; L, C7 W! @- p+ F
    under Windows, Mac, and Unix
    4 w, c% D" ]' g) U- d在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~
    / P) z2 f; P: d# W) A4 o% f( n
    3 x  P0 I: `" A' U" ^, \2 还有一个make这一步出现的错误3 Make时出错. c( g6 m6 n- ^( M7 u$ G
    Undefined function orvariable 'make'
    * D( H" u5 X4 Q7 D( R8 \9 P解决方法为:
    1 J, P8 s% C, P0 b  ~设置matlab的path
    ' ]) @8 Z8 l; g  i* N* m2 {% v   方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)/ h- P6 V- ]  b6 U) F2 m
    还要记得把current folder 设为matlab所在的路径
    # H0 `+ P+ S, E) p; x: V: \3 输入load heart_scale.mat;报错
    ! I1 U. B/ X' p+ x: KError using load
    & s% {, j# K6 q2 z( C, c% cUnable to read file heart_scale.mat;: No- ~. k( s7 L& o) Z" H
    such file or directory.
    ( `4 i1 W! Z( r这个问题是这样的,不应该有最后那个;   去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)7 x. a: x' ^* z+ z8 }0 }8 u  R
    4
    5 V( Y7 ], s4 ]/ a4 E1 G4 \) u' @& f/ ^load 这一步报错
    $ n- l* z3 h$ \$ f" D??? Error using ==>load
    $ N6 d* P. F/ J) v" vNumber of columns on line 2 of ASCII file D:\Program
    7 A* G/ [$ G" E# i8 OFiles\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale
    ( i/ q( z& D! ?0 E4 H) y$ G1 A  ^# nmust be the same as previous lines." X* n+ K- C/ v$ c" \4 q7 c% e0 p
    官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)5 e0 x, [+ g/ K, t$ l
    一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()
    . _1 K5 ?2 U4 j7 ?/ @8 J使用如下: [label_vector, instance_matrix] =libsvmread('filename');; C; P3 J' u4 o8 y% }$ R. Y# t
    此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');( ?% P/ Z( [; b- `* e2 d. ]) w2 O
    注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。
    2 L+ n5 O' ]/ R但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
    ; B" s5 w6 N# T6 L* |3 G$ t' `3 [: j  u- P' p* B

    " _6 F8 G0 U. l2 z3 c0 R9 u' o# a: R

    * l7 P8 n+ y$ H# y) g5 到svmtrain这一步报错
    2 V# D* h* v+ B# \9 q??? Errorusing ==>svmtrain at 172
    0 t$ J; C( K+ O; G& Y" pGroup mustbe a vector.; A$ Z( r" _/ x2 \' l
    是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了# N: x- U0 b) ^1 D- z
    在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱……
    数学建模社会化
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-15 10:45 , Processed in 0.400355 second(s), 62 queries .

    回顶部