1

当我尝试以某种方式格式化我的文件时,我无法弄清楚为什么会出现错误。以下代码正确加载了我的文件,但将其加载为 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,但我想正确读取它而不必这样做。谢谢!

4

1 回答 1

2

尝试使用这一行:

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

你最终会得到一个单元格Navi_Endo_RefHomCell,但你可以用它cell2mat来解决这个问题。

于 2013-08-22T08:47:38.107 回答