How to ignore last letter in a cell containing text and numbers

2 visualizzazioni (ultimi 30 giorni)
Hi there,
So I have a space separated text file and im trying to alter this piece of code "tmp=textscan(tmpl,'%s %s %s %s %s')" so that matlab only reads "4.259" and not "4.259M"
11- Number yyyy mm dd hh mi ssf f f
12- 1) 2017/01/01 00:00:00 4.259M 0.053M
Code:
function data=load_tide_data(filename)
data.filename=filename;
fid=fopen(filename);
for I=1:12
tmpl=fgetl(fid);
end
J=1;
while ischar(tmpl)
tmp=textscan(tmpl,'%s %s %s %s %s');
data.t(J)=datenum([ cell2mat(tmp{2}) ' ' cell2mat(tmp{3}) ]);
tmph=str2num(cell2mat(tmp{4}));
if isempty(tmph)
tmph=NaN;
end
data.h(J)=tmph;
tmpl=fgetl(fid);
J=J+1;
end
fclose(fid)
Any ideas would be greatly appreciated :)
  4 Commenti
jonas
jonas il 17 Ott 2018
Modificato: jonas il 17 Ott 2018
An ugly solution would be to add M as a delimiter and use multipledelimsasone, the downside being that it would interpret all letters M as delimiters..
Jack Lakeman
Jack Lakeman il 17 Ott 2018
Not only that but i have different files where the "M" is dotted around in different cells. So some would have an M and some wont in the same file

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by