Make changes to a text file with numbers and text

3 Ansichten (letzte 30 Tage)
Zoe Zimmerman
Zoe Zimmerman am 27 Apr. 2023
Kommentiert: Zoe Zimmerman am 27 Apr. 2023
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.

Antworten (1)

chicken vector
chicken vector am 27 Apr. 2023
Bearbeitet: chicken vector am 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.

Kategorien

Mehr zu Entering Commands finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by