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);

我使用了类似的方法,但只检查输入的末尾,因为子对象很可能位于末尾。