Matlab mattlab:从文本文件末尾删除子字符
我使用Matlab mattlab:从文本文件末尾删除子字符,matlab,text,import,Matlab,Text,Import,我使用importdata A = importdata(logFile, '\t', 1); 这很好,除非“SUB”字符位于文件末尾 在这种情况下,我得到了错误 错误 matlab.graphics.internal.figfile.figfile/read>@(hObject,eventdata)uiProjekt('menuEvalAllData_Callback',hObject,eventdata,guidata(hObject)) 原因: 使用vertcat时出错 矩阵的维数 连接
importdata
A = importdata(logFile, '\t', 1);
这很好,除非“SUB”字符位于文件末尾
在这种情况下,我得到了错误
错误
matlab.graphics.internal.figfile.figfile/read>@(hObject,eventdata)uiProjekt('menuEvalAllData_Callback',hObject,eventdata,guidata(hObject))
原因:
使用vertcat时出错
矩阵的维数
连接的不是
始终如一
我的问题是:我如何解决这个错误?
最简单的方法是在之前从文件中删除char。但是如何有效地从大型文本文件中删除单个字符?您可以使用
strep
替换子字符strrep
非常有效,即使是大文件也应该很快
ASCII中SUB
字符的十进制值为26
下面是从输入文件input.txt
中删除SUB
字符的示例代码:
% Open files:
inputID = fopen('input.txt','r');
outputID = fopen('output.txt','w');
file_data=fread(inputID,'*char')'; % Read all data from input file
file_data_fixed = strrep(file_data,char(26),''); % Find and replace the SUB char with blank
fprintf(outputID,'%s',file_data_fixed); % Print all data (without SUB) to output file
% Close files:
fclose(inputID);
fclose(outputID);
我使用了类似的方法,但只检查输入的末尾,因为子对象很可能位于末尾。