c语言读入图片matlab,将数据从matlab文件读入C语言

我正在尝试学习如何使用C API来读取Matlab .mat文件,但它没有像我预期的那样工作:

我想打开一个名为test.mat的非常简单的.mat文件,从文件中读取一个值并将其存储在C变量中.我使用以下命令在Matlab中创建了test.mat:

> value = 3;

> save ("test.mat", "value")

下面是我的C代码,它甚至没有编译 – 编译器似乎没有找到头文件.请参阅下面的编译器输出代码.我在这做错了什么?

码:

#include

#include

#include

#include

int main(int argc, char *argv[]) {

double value;

MATFile *datafile;

datafile = matOpen("test.mat", "r");

mxArray *mxValue;

mxValue = matGetVariable(datafile, "value");

matClose(datafile);

value = *mxGetPr(mxArray);

mxFree(mxArray);

printf("The value fetched from the .mat file was: %f", value);

return 0;

}

编译器输出:

$make animate_shot

cc -I/usr/local/MATLAB/R2011a/extern/include/ animate_shot.c -o animate_shot

/tmp/cczrh1vT.o: In function `main':

animate_shot.c:(.text+0x1a): undefined reference to `matOpen'

animate_shot.c:(.text+0x2f): undefined reference to `matGetVariable'

animate_shot.c:(.text+0x3f): undefined reference to `matClose'

animate_shot.c:(.text+0x4b): undefined reference to `mxGetPr'

animate_shot.c:(.text+0x5e): undefined reference to `mxFree'

collect2: ld returned 1 exit status

make: *** [animate_shot] Error 1

(-I标志在我的makefile中用CPPFLAGS = -I /usr/local / MATLAB / R2011a / extern / include /行指定,我已经验证该目录是否存在并包含头文件mat.h和matrix .H).

更新:

我发现我需要链接的库是libmat.so和libmx.so(根据this MathWorks help article),驻留在我的系统上的/usr/local / MATLAB / R2011a / bin / glnxa64 /中.因此我将makefile更新为:

CPPFLAGS =-I/usr/local/MATLAB/R2011a/extern/include/

LDFLAGS = -L/usr/local/MATLAB/R2011a/bin/glnxa64 -l mat -l mx

现在,运行make会给出以下命令:

cc -I/usr/local/MATLAB/R2011a/extern/include/ -L/usr/local/MATLAB/R2011a/bin/glnxa64 -l mat -l mx animate_shot.c -o animate_shot

但是,我仍然得到同样的错误.有任何想法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值