Matlab中编译C++文件

今天在跑《Robust Object Tracking via Sparsity-based Collaborative Model》这篇文章的代码时候,发现出现如下错误:

发现错误时由于vgg_kmiter这个c类型的函数引起的,于是百度查看先关知识,原来是没有编译vgg_kmiter引起的错误,并且在此指出:由于高matlab版本不再支持mxCreateScalarDouble,而被变为mxCreateDoubleScalar,因而要把所有的cpp源文件中出现mxCreateScalarDouble全部换掉。

编译cpp文件的过程如下,首先在comman窗口输入mex -setup,会得到如下提示:

下面我们直接点y,选择编译器就是了,最后会得到这样的结果,说明我们编译成功了

这时我们只需要mex vgg_kmiter.cxx就可以了,如果光标闪烁说明编译成功了:

时间: 2024-10-06 02:49:22

Matlab中编译C++文件的相关文章

matlab 中的删除文件

Matlab中有两种删除文件的方式: 一种是删除文件     delete()函数      //可以使用help  delete命令查询delete()函数的使用方法 delete('p1.jpg') 表示删除当前路径下的名为p1.jpg的图片文件,删除其他文件一样,只需将单引号里的文件名更改即可. delete('train/p1.jpg') 表示删除当前文件夹下的train文件夹下的名为p1.jpg的图片文件 简单的说,括号里存放的应该是要删除文件的的路径加上文件名. 另一种是删除文件夹:

Linux中编译C文件

C/C++程序编译的过程 预处理,展开头文件,宏定义,条件编译处理等.通过gcc -E source.c -o source.i或者cpp source.c生成. 编译.这里是一个狭义的编译意义,指的是将预处理后的文件翻译成汇编代码的过程.通过gcc -S source.i生成.默认生成source.s文件. 汇编.汇编即将上一步生成的汇编代码翻译成对应的二进制机器码的过程.通过gcc -c source.s来生成source.o文件. 链接.链接是将生成目标文件和其引用的各种符号等生成一个完整

MATLAB中TXT数据文件读取并写入元胞数组的方法与步骤

一. TXT数据文件读取 Data = load('train.txt');   %简单的文件读取,这时在工作区可以看到导入的大数据变量Data 二.大数据变量Data装入元胞数组中 D = cell(5, 1);   %元胞的定义,定义一个5*1的元胞D D{1, 1} = rand(223, 26);   %初始化第1行第1列的元胞为223*26的一个数组,数组元素为随机值 D{1, 1} = Data(1: 1+222, 1: 1+25);  %将大数据变量的223*26的数值赋值(装入)

matlab中 mat的文件和txt文件相互转换

(1)直接保存为txt文件: >> a=rand(1,2) a = 0.1419 0.4218 >> fid=fopen('a.txt','wt'); >> fprintf(fid,'%6.4f %6.4f\n',a); >> fclose(fid); >> (2)将mat文件转存为txt文件: >> clear >> load a.mat >> save b.txt -ASCII a; (3)将txt文件转存

ubuntu系统下cmake 编译matlab中mex文件

cmake 编译工程具有独特的优势,特别对于复杂的工程更是如此.利用matlab直接编译mex文件时,对于文件数据多的工程时,需要列举所有文件,并且要按照依赖关系排序,这些都是直接采用matalb编译mex的缺点. 下面通过一个简单的加法函数例子,说明如何利用cmake编译生成mex文件.如何对系统动态库进行设置,使matlab能够正常调用mex函数. 首先说明如何生成mex文件. 本例首先利用add.h.add.cpp文件编译生成add.so动态文件库,然后利用mian.cpp文件调用add.

matlab中同一文件定义子函数的方法

在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同在一个m文件中通常有两种定义子函数的方法: 1.嵌套定义 myfunc1会和主函数共享变量名.这种情况下,使用相同的变量名,如果不是故意为之,就不合适了.function mainFunc(... a = myfunc1();...function myfunc1()...end end2. 非嵌套定义function mainFunc()...a = myfunc1();...end functi

Matlab中函数定义方法

Matlab自定义函数的六种方法 n1.函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件: n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n3.Inline:无需M文件,直接定义: n4.匿名函数: n5.Syms+subs:无需M文件,直接定义: n6.字符串+subs:无需M文件,直接定义. ------------ 1.函数文件+调用函数文件:定义多个M文件 % 调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t);

在matlab中生成m序列

实验环境为matlab2013b 1.首先编写一个mseq.m文件,内容为: function[mseq]=m_sequence(fbconnection) n=length(fbconnection); N=2^n-1; register=[zeros(1,n-1) 1];  %移位寄存器的初始状态 mseq(1)=register(n);        %m序列的第一个输出码元 for i=2:N newregister(1)=mod(sum(fbconnection.*register),

Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包

一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mvn clean compile 时出错如下: 原因是在eclipse中添加了 exteneral jar后,还需要在maven中再添加依赖的jar包 Maven手动添加第三方依赖包有两种方法: 参考:maven 添加第三方依赖              maven中把依赖的JAR包一起打包 第一种方法是使