用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文件中的信息
#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,把代码传过来,帮你解决
另外,验证的时候要写清楚 请求的原因
你先搜索整个工程,error提示中的两个变量在哪里用到
另外,也有可能是 include导入的头文件问题
比如没导入必要的库
或者是导入的库有问题
看你这段代码没有这两个变量,可能是其他文件或者使用的库的问题
导入的库也有依赖关系,使用前应该看看使用说明吧
还有其他可能就是,本机的环境变量设定的问题
信息不够,暂时只能帮你分析到这里
如果还有疑问,加QQ 11302106,把代码传过来,帮你解决
另外,验证的时候要写清楚 请求的原因
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯