今天用到了Matlab读取文本文件中按照一定格式存储好的数据,然后进行后续的分析计算等,因此涉及到Matlab的文件读取,记录在这里,供以后查阅:
1 fid = fopen('train.set', 'r'); 2 A = []; 3 B = []; 4 while(~feof(fid)) 5 tline = fgetl(fid); 6 [a,b]=textread(tline, '%f %f'); 7 A = [A; a]; 8 B = [B; b]; 9 end 10 C = [A, B];
其中train.set中保存着所有的待读取的文件的文件名,在这个例子中每个文件中存储的是n行两列的数据,因此按照上述程序进行导入之后,这两列数据就存储到a,b之中了,为了将所有的数据存放在一个变量中,后面进行了矩阵的合并,即将所有的a都一次追加到A后面,B亦然,最后再将A与B合并成C。
下面是在C++中调用系统函数进行文件删除
1 #include <windows.h> 2 3 char saveName[1024]; 4 sprintf(saveName, "%s%d_%08d.jpg", path.c_str(), video_id, frameId); 5 imwrite(saveName, src); 6 .... 7 .... 8 .... 9 DeleteFile(saveName);
需要注意的是,如果实在程序中打开的文件,必须要在关闭之后才能正确删除,如下所示:
1 #include <windows.h> 2 3 FILE *pfFileOut = NULL; 4 char buffer[1024]; 5 sprintf(buffer, "%s%d_%08d.txt", xmlpath.c_str(), video_id, frameId); 6 pfFileOut = fopen(buffer, "wb"); 7 ... 8 ... 9 fclose(pfFileOut); 10 pfFileOut = NULL; 11 DeleteFile(buffer);