用c语言编写的读取mat文件(matlab矩阵)的程序,有错,求帮助
发布网友
发布时间:2022-04-29 22:58
我来回答
共3个回答
热心网友
时间:2022-06-25 05:19
从错误提示上,就是两个变量未定义导致的链接错误
你先搜索整个工程,error提示中的两个变量在哪里用到
另外,也有可能是 include导入的头文件问题
比如没导入必要的库
或者是导入的库有问题
看你这段代码没有这两个变量,可能是其他文件或者使用的库的问题
导入的库也有依赖关系,使用前应该看看使用说明吧
还有其他可能就是,本机的环境变量设定的问题
信息不够,暂时只能帮你分析到这里
如果还有疑问,加QQ 11302106,把代码传过来,帮你解决
另外,验证的时候要写清楚 请求的原因
热心网友
时间:2022-06-25 05:20
#include <stdio.h>
#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();
}
热心网友
时间:2022-06-25 05:20
看不懂