使用Matio库将.mat文件中的字符串读取到C++中
Using Matio Library to read a string from a .mat file into C++
我使用matio库在C++代码中输入.mat文件。它适用于数值;但我在读取字符数组时遇到问题。
int start[2]={0,0},stride[2]={1,1},edge[2]={1,1};
mat_t *mat;
matvar_t *matvar, matvar1;
mat = Mat_Open("test.mat",MAT_ACC_RDONLY);
matvar = Mat_VarReadInfo(mat,"data");
matvar1 = Mat_VarGetStructFieldByName(matvar,"name",0);
char ptr[matvar2->dims[1]];
edge[0] = matvar2->dims[0];
edge[1] = matvar2->dims[1];
Mat_VarReadData(mat,matvar2,ptr_string,start,stride,edge);
Mat_VarReadData将数据从Mat写入ptr_string,其中matvar2是指向名称结构的指针。
如前所述,这适用于数值;但对于角色,我不理解所谓的猜谜游戏。也许格式不对。
当通道是字符串列表时,这对我有效:
mat_t* mat = Mat_Open(fileName, MAT_ACC_RDONLY);
matvar_t* channels{};
channels = Mat_VarRead(mat, (char*)"Channels");
if (channels)
{
//print individual
matvar_t** cells = static_cast<matvar_t**>(channels->data);
printf("{n");
for (int i{}; i < channels->dims[1]; i++)
{
//Mat_VarPrint(cells[i], 1);
std::cout << static_cast<char*>(cells[i]->data) << 'n';
}
printf("}n");
Mat_VarFree(channels);
}
Mat_Close(mat);
相关文章:
- 如何使用Luacneneneba API正确读取字符串和表参数
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何从字符串C++读取多个整数
- 使用字符串读取的字符串
- 从文件到字符串读取并传递到功能
- C++ cin 将字符串读取到 int 类型中返回 0
- 使用CIN和/或字符串读取带有混合输入的文本文件
- 将两个字符串作为一个字符串读取
- 如何将WCP 1252字符串读取为std::tstring
- 如何将字符串读取为字符串向量或将整数读取为整数向量
- 将一系列字符串读取到char数组中
- 如何在 c++ 中将文件中的段落作为单个字符串读取
- 从 txt 文件中将后缀表达式作为字符串读取
- C++银行项目;如何将一组字符串读取为单独的浮点数并添加它们
- 在 c++ 中循环字符串读取器
- 将字符串读取为命令行参数C++
- 如何在QT中使用QDomDocument对象将字符串读取为XML
- 使用Matio库将.mat文件中的字符串读取到C++中
- 作为字符串读取第一列数据文件
- 如何在字符串读取完成时停止c++的recv() ?