读取文件,正确加载但未正确格式化

时间:2013-08-22 08:28:54

标签: matlab readfile

当我尝试以某种方式格式化文件时,我无法弄清楚为什么会出现错误。以下代码正确加载我的文件,但它将其加载为12x1数组。

disp(strcat('Navi_Endo_RefHomMat_', num2str(i), '.txt'))
Navi_HomMat_File_ID = fopen(strcat('Navi_Endo_RefHomMat_', num2str(i), '.txt'));
Navi_Endo_RefHomMat(i,:) = textscan(Navi_HomMat_File_ID,'%f');
fclose(Navi_HomMat_File_ID);

我希望它可以加载为3x4阵列。当我尝试执行以下操作时,我收到错误“赋值具有比非单例下标更多的非单例rhs维度”

disp(strcat('Navi_Endo_RefHomMat_', num2str(i), '.txt'))
Navi_HomMat_File_ID = fopen(strcat('Navi_Endo_RefHomMat_', num2str(i), '.txt'));
Navi_Endo_RefHomMat(i,:) = textscan(Navi_HomMat_File_ID,'%f %f %f %f');
fclose(Navi_HomMat_File_ID);

我的文字文件如下所示

   7.8466354e-01  -9.7684133e-02  -6.1201847e-01  -1.6701139e+01
   4.6962973e-01   7.3803591e-01   4.8431043e-01  -2.0213967e+02
   4.0442146e-01  -6.6750767e-01   6.2504598e-01  -1.7367594e+02
   0.0000000e+00   0.0000000e+00   0.0000000e+00   1.0000000e+00

我知道我可以很容易地改变我的变量我重塑它以获得3x4,但我想正确阅读它而不必这样做。谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用此行:

Navi_Endo_RefHomCell = textscan(Navi_HomMat_File_ID, '%f %f %f %f');

您最终会得到一个单元格Navi_Endo_RefHomCell,但您可以使用cell2mat来解决此问题。