当我尝试以某种方式格式化文件时,我无法弄清楚为什么会出现错误。以下代码正确加载我的文件,但它将其加载为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,但我想正确阅读它而不必这样做。谢谢!
答案 0 :(得分:2)
尝试使用此行:
Navi_Endo_RefHomCell = textscan(Navi_HomMat_File_ID, '%f %f %f %f');
您最终会得到一个单元格Navi_Endo_RefHomCell
,但您可以使用cell2mat
来解决此问题。