Make changes to a text file with numbers and text

4 views (last 30 days)
Hi,
I would like to:
  • import the attached text file into matlab
  • multiply all numeric values of the attached text file by 0.89
Unfortunately, I am having trouble with this as the headings are different for each section of number values.

Answers (1)

chicken vector
chicken vector on 27 Apr 2023
Edited: chicken vector on 27 Apr 2023
str = fileread('hector_400km.txt');
lines = regexp(str, '\r\n|\r|\n', 'split');
for line = 20 : length(lines)
modifiedData = str2num(lines{line})*0.89;
% This check is done because I noticed some lines (e.g. 620) are not data to be
% multplied:
if ~isempty(modifiedData)
nSpaces = 6 - numel(num2str(floor(modifiedData(1))));
lines{line} = [repmat(' ',1,nSpaces) num2str(modifiedData,'%9.2f')];
end
end
fid = fopen('hector_400km_new.txt','w');
fprintf(fid,'%s\n',lines{:});
fclose(fid);
This should preserve the spaces and the formatting, otherwise, if you don't care about that the code can be simplified and you can write a .csv with writecell.

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!