我試圖從.mat文件中將1100x1100矩陣複製到類型爲float的數組變量 C++中。我在網上閱讀,發現圖書館是一個不錯的選擇。我在Ubuntu 12.04上使用「make」安裝了他們的庫(我按照他們網頁上給出的方法)。 但是,我無法使用它編寫代碼,主要是因爲我是C++新手。我正在使用g ++來編譯文件。我收到諸如「Mat_Open的未知引用」等錯誤。 我沒有找到網頁上的這段代碼:將.mat文件中的值輸入到C++中的數組中
#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");
}
我有幾個問題:
- 這裏,的argv [1]對應於.MAT文件我想開放權利?
- x在此代碼中存在的.mat文件中的變量我試圖複製?
- 當我運行這段代碼時,我收到錯誤,說明 - 對Mat_Open的未知引用等等。另一對相同類型的錯誤也在那裏。
我編譯使用:g++ abc.cpp -o test
。 (後面是./test
。但是我從來沒有因爲編譯過程中出現錯誤而陷入困境)。
我該如何讓它工作?我使用的代碼有錯誤嗎?或者使用我正在使用的編譯語句 - 也許有一些鏈接器需要用於編譯。
謝謝。請記住我是C++的新手。任何意見將是有益的。
我將安裝CodeBlocks。但是一旦我安裝了它,我將在哪裏添加庫文件等?另外,我不明白「你在程序調用後放置的第一個參數」是什麼意思。我對C很熟悉,而且C++的確有很大不同。 另外,被調用的輸入.mat文件在哪裏? – mysticsasuke
創建新項目。添加你需要的所有資源。在菜單中選擇:項目 - >選項。在打開的窗口中選擇「鏈接器設置」來添加庫文件,並選擇「搜索目錄」來設置包含您的頭文件的目錄列表。 – Arkady
你好,哪裏是.mat文件將被輸入到上面的代碼中提到的C++程序? – mysticsasuke