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

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

从错误提示上,就是两个变量未定义导致的链接错误

你先搜索整个工程,error提示中的两个变量在哪里用到

另外,也有可能是 include导入的头文件问题

比如没导入必要的库

或者是导入的库有问题

看你这段代码没有这两个变量,可能是其他文件或者使用的库的问题

导入的库也有依赖关系,使用前应该看看使用说明吧

还有其他可能就是,本机的环境变量设定的问题

信息不够,暂时只能帮你分析到这里

如果还有疑问,加QQ 11302106,把代码传过来,帮你解决

另外,验证的时候要写清楚 请求的原因

Include Files记录Project到何处去寻找所包含的头简手文件,当然,如果将engine.h拷贝到Project目录下,则不需要设置Include Files。2)1)Tools->Options->Directories:lib中 添加MATLAB安装目录>\extern\lib\win32\microsoft\msvc60。3)Projects->告咐蠢Project Settings菜单,LINK标签,Object\Library Module下添加:libeng.lib libmat.lib libmx.lib 三个库。4)最最重要的:系统->高级->环境变量,添加DLL所在目录,注销,运行VC++程序 以下是vc调用matlab的.mat 矩阵实例(成功啦啦啦。。。。。)#include <iostream.h>#include <stdio.h>#include <engine.h>#include <mat.h>int main (int argc, char *argv[]){MATFile *pMF// mat文件mxArray *pA// 矩阵指针double *A// 数据指针const char **dirint ndirint i, jint M, Nchar a[256]// 打开temp.mat文件,只读pMF = matOpen("fv.mat", "r")//输出mat文件中的变量名dir = (const char **)matGetDir(pMF, &ndir)for (i=0i <ndiri++)cout<<"dir["<<i<<"]="<<dir[i]<<endl//将dir[0]中的字符串赋给asprintf(a, "%s",dir[0])//从mat文件中获取袜陪数据pA = matGetVariable(pMF, a)//获取数据的行数M=mxGetM(pA)//获取数据的列数,以供下面的循环终止条件使用N=mxGetN(pA)//pA = mxCreateDoubleMatrix(M, N, mxREAL)//注意此时是将pA里的数全初始化为零,所以不应有这句,否则最后输出全是0// 获得矩阵数据地址A = mxGetPr(pA)// 输出矩阵 for (i = 0i <Mi++){for (j = 0j <Nj++)cout <<A[j * M + i] <<' 'cout <<endl}//释放空间mxFree(dir)// 释放矩阵空间


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8207659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存