永发信息网

用c语言编写的读取mat文件(matlab矩阵)的程序,有错,求帮助

答案:3  悬赏:20  手机版
解决时间 2021-04-05 01:00
  • 提问者网友:心如荒岛囚我终老
  • 2021-04-04 20:40
用c语言编写的读取mat文件(matlab矩阵)的程序,有错,求帮助
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-04-04 21:43
#include
#include "math.h"//少了个h
#include "string.h"
//下面的一些定义没有,没办法改了
void main()
{
MATFile *pmat_r,*pmat_w;
mxArray *pa_r,*pa_w;
double A_data[9];
int i,j,status,M,N;
const char *file="by.mat";
double *dou;
for(i=0;i<9;i++)
{
A_data[i]=i+1;
}
pmat_w = matOpen(file,"w");
if(pmat_w==NULL)
{
printf("创建文件错误 %s\n",file);
}
pa_w = mxCreateDoubleMatrix(3,3,mxREAL);
memcpy((void*)(mxGetPr(pa_w)),(void*)A_data,sizeof(A_data));
status = matPutVariable(pmat_w,"A",pa_w);
mxDestroyArray(pa_w);
if(matClose(pmat_w))
{
printf("关闭文件错误 %s",file);
}
pmat_r = matOpen(file,"r");
pa_r = matGetVariable(pmat_r,"A");
dou = mxGetPr(pa_r);
M = mxGetM(pa_r);
N = mxGetN(pa_r);
for(i = 0;i < M;i++)
{
for(j = 0;j < N;j++)
{
printf("%3.0f ",*dou);
dou++;
}
printf("\n");
}
mxDestroyArray(pa_r);
matClose(pmat_r);
printf("测试完毕!!!");
getchar();
}追问你错了,mat.h是matlab的一个头文件,不是math,h写错追答这个不是C语言吗?怎么是matlab啊?matlab我记得不是这样的啊哪有什么printf的函数啊?追问matlab生成的矩阵文件后缀是.mat。现在我要用c语言编写一个程序,来读取.mat文件中的信息
全部回答
  • 1楼网友:蓝房子
  • 2021-04-04 23:42
看不懂
  • 2楼网友:舍身薄凉客
  • 2021-04-04 22:10
从错误提示上,就是两个变量未定义导致的链接错误
你先搜索整个工程,error提示中的两个变量在哪里用到
另外,也有可能是 include导入的头文件问题
比如没导入必要的库
或者是导入的库有问题
看你这段代码没有这两个变量,可能是其他文件或者使用的库的问题
导入的库也有依赖关系,使用前应该看看使用说明吧
还有其他可能就是,本机的环境变量设定的问题
信息不够,暂时只能帮你分析到这里
如果还有疑问,加QQ 11302106,把代码传过来,帮你解决
另外,验证的时候要写清楚 请求的原因
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯