C++ 将.mat文件中的值输入到C++;

C++ 将.mat文件中的值输入到C++;,c++,matlab,C++,Matlab,我试图将.100xx100矩阵从.Mat文件复制到C++中的“强>浮点< /强>”数组变量。我在网上阅读,发现matio图书馆是一个不错的选择。我在Ubuntu 12.04上使用“make”安装了他们的库(我遵循了他们网页上给出的方法)。 但是,我不能用它编写代码,主要是因为我是C++新手。我正在使用g++编译该文件。我会遇到诸如“未知的Mat_Open引用”等错误。 我确实在网页上找到了以下代码: #include <stdlib.h> #include <stdio.h&g

我试图将.100xx100矩阵从.Mat文件复制到C++中的“强>浮点< /强>”数组变量。我在网上阅读,发现matio图书馆是一个不错的选择。我在Ubuntu 12.04上使用“make”安装了他们的库(我遵循了他们网页上给出的方法)。 但是,我不能用它编写代码,主要是因为我是C++新手。我正在使用g++编译该文件。我会遇到诸如“未知的Mat_Open引用”等错误。 我确实在网页上找到了以下代码:

#include <stdlib.h>
#include <stdio.h>
#include "matio.h"
int main(int argc,char **argv)
{
    mat_t *matfp;
    matvar_t *matvar;
    matfp = Mat_Open(argv[1],MAT_ACC_RDONLY); //here argv[1] is "a.mat"?
    if ( NULL == matfp ) 
    {
        fprintf(stderr,"Error opening MAT file %s0,argv[1]);
        return EXIT_FAILURE;
    }
    matvar = Mat_VarReadInfo(matfp,"x"); // x is the variable we are trying to access?
    if ( NULL == matvar ) 
    {
    fprintf(stderr,"Variable ’x’ not found, or error reading MAT file\n");
}
#包括
#包括
#包括“matio.h”
int main(int argc,字符**argv)
{
材料*matfp;
matvar_t*matvar;
matfp=Mat_Open(argv[1],Mat_ACC_RDONLY);//这里argv[1]是“a.Mat”?
如果(NULL==matfp)
{
fprintf(stderr,“打开MAT文件%s0时出错,argv[1]);
返回退出失败;
}
matvar=Mat_VarReadInfo(matfp,“x”);//x是我们试图访问的变量?
if(NULL==matvar)
{
fprintf(stderr,“未找到变量'x',或读取MAT文件时出错\n”);
}
我有几个问题:

  • 这里,argv[1]对应于我试图打开的.mat文件,对吗
  • x在此代码中,我试图复制的.mat文件中是否存在变量
  • 当我运行这段代码时,我收到了一些错误,比如对Mat_Open的未知引用等等,还有另外两个相同类型的错误
我使用:
g++abc.cpp-o test
(后面紧跟着
/test
。但是由于编译过程中出现的错误,我从来没有考虑过这一点)

我怎样才能使它工作呢?我使用的代码有错误吗?或者我正在使用的compile语句可能有一些链接器我需要用于编译

谢谢。请记住我是C++新手。任何建议都是有用的。

< P > 1)AGV(1)是你程序调用后的第一个参数。如果你想“感觉它”,就使用这样的调试器或代码:< /P>
#include <iostream>
for (unsigned i = 0; i < argc; ++i)
{
    std::cout << argv[i] << std::endl;
}
#包括
for(无符号i=0;istd::我可以安装代码块。但一旦安装了代码块,我必须在哪里添加库文件之类的东西呢?而且,我真的不明白你说的“程序调用后放置的第一个参数”是什么意思“我熟悉C,C++看起来非常不同。还有,输入。Mat文件被调用。创建新项目。添加所有需要的源。在菜单选择:Projt-选项。在打开窗口中选择“链接器设置”来添加库文件,以及“搜索目录”。用头文件设置包含目录的列表。您好,上面的代码中提到的.C++文件将在哪里输入?我已经安装了代码::块和运行上面写的代码。我仍然有2个错误:未定义的引用MatthOnter和MataValRead信息。我找不到文件夹中的库文件。从matio-1.5.2的sourceforge网页加载并解压缩。下一步该如何进行?在构建程序(例如“testprog”)后,需要通过“testprog path/to/my/mat/file.mat”启动它,然后从argv[1]接收“path/to/my/mat/file.mat”在您的程序中,.mat文件的名称必须是从argv[i]获得的程序参数。