Filter löschen
Filter löschen

how to change decimal places after point

1 Ansicht (letzte 30 Tage)
Tanmoyee Bhattacharya
Tanmoyee Bhattacharya am 22 Mär. 2016
Bearbeitet: Stephen23 am 22 Mär. 2016
I have so many text files named
data_70.000_32.125
data_70.124_32.120
data_74.120_32.123
I have to make them
data_70.0_32.125
data_70.124_32.12
data_74.12_32.123
means where three zero after decimal make it one zero and remaining no zero.
  1 Kommentar
Stephen23
Stephen23 am 22 Mär. 2016
Bearbeitet: Stephen23 am 22 Mär. 2016
Actually the names with consistent three decimal digits are better, because they:
  • are easier to scan when printed in a list.
  • are easier to parse (consistent formats are always better).
  • sort correctly into numeric order using a standard sort. Here is an example showing that your new format does not sort correctly:
>> old = {'data_70.000_32.125.csv'; 'data_70.124_32.120.csv'; 'data_70.120_32.123.csv'};
>> sort(old) % correct numeric order
ans =
'data_70.000_32.125.csv'
'data_70.120_32.123.csv'
'data_70.124_32.120.csv'
>> new = {'data_70.0_32.125.csv'; 'data_70.124_32.120.csv'; 'data_70.12_32.123.csv'};
>> sort(new) % your format gives the wrong numeric order.
ans =
'data_70.0_32.125.csv'
'data_70.124_32.120.csv'
'data_70.12_32.123.csv'
Of course you can then use my FEX submission natsortfiles to get them back into the correct order, but why bother when those trailing zeros do the job anyway.
I don't see any good reason to remove those zeros, just disadvantages.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 22 Mär. 2016
v={'data_70.000_32.125';'data_70.124_32.120';'data_74.120_32.123'}
w=cell(size(v))
for k=1:numel(v)
a=regexp(v{k},'_','split')
a2=a{2}
a3=a{3}
b2=str2double(regexp(a2,'\d+','match'));
b3=str2double(regexp(a3,'\d+','match'));
w{k}=sprintf('data_%d.%d_%d.%d',[b2 b3]);
end
celldisp(w)
  2 Kommentare
Tanmoyee Bhattacharya
Tanmoyee Bhattacharya am 22 Mär. 2016
If I have so many text files How can we get the names as v in this code.How can we read all that text files to get the name.some 2000 text files are there.
Azzi Abdelmalek
Azzi Abdelmalek am 22 Mär. 2016
Bearbeitet: Azzi Abdelmalek am 22 Mär. 2016
You can use the dir command to get all your text files located somewhere
s=dir(fullfile('your_folder','*.txt'))
files={s.name}

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by