首页 > 解决方案 > mattlab:从文本文件末尾删除 SUB char

问题描述

我使用在 matlab 中导入文本importdata

A = importdata(logFile, '\t', 1);

这可以正常工作,除非“SUB”字符位于文件末尾。在此处输入图像描述

在这种情况下,我收到错误

matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)uiProjekt('menuEvalAllData_Callback',hObject,eventdata,guidata(hObject)) 中的错误

原因:使用 vertcat 时出错 被连接的矩阵的维度不一致。

我的问题是:我该如何解决这个错误?最简单的想法是之前从文件中删除字符。但是如何有效地从大型文本文件中删除单个字符?

标签: matlabtextimport

解决方案


您可以使用strrep来替换SUB字符。strrep效率很高,即使是大文件也应该很快。

SUBASCII 字符的十进制值为26。

SUB这是从输入文件中删除字符的示例代码input.txt

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

推荐阅读