Textscan Reads Only the first 3 numbers

7 vues (au cours des 30 derniers jours)
Fabio Taccaliti
Fabio Taccaliti le 26 Sep 2022
Commenté : Geoff Hayes le 26 Sep 2022
Hello,
I´m trying to read this .txt (attached) file and store the values (54 columuns).
This is the code that I´m using
Name_1 = 'fffff.txt';
fid = fopen(Name_1,'r');
cell_data1= textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','Delimiter','','headerLines',6,'CollectOutput',1);
fclose(fid);
But unfortunately the code is messing with the first two columns (data and time).
This is what it stores.
How can I skip those two and just store the remaining 52 columns?
Thanks in advance
  2 commentaires
Star Strider
Star Strider le 26 Sep 2022
Look at the file —
C1 = readcell('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1136490/fffff.txt')
C1 = 11×3 cell array
{'Run' } {[ 279]} {1×1 missing } {'Comment' } {1×1 missing } {1×1 missing } {'Runmap' } {'K_30_01_QS_yaw-sweep-vmax' } {1×1 missing } {'Customer' } {'Unk' } {1×1 missing } {'Date' } {'Time→Yaw→Lean→Vair→Pa→Ptr-P0→Temp→Hr→Rho→Fx→Fy→Fz→Mx→My→Mz→P1→P2→P3→P4→P5→P6→P7→P8→P9→P10→P11→P12→P13→P14→P15→P16→P17→P18→P19→P20→P21→P22→P23→P24→P25→P26→P27→P28→P29→P30→P31→P32→Ffront wheel→Tin→Tout→Waterflow→Cooling power→Specific cooling power'} {1×1 missing } {'[°]→[°]→[m/s]→[Pa]→[Pa]→[°C]→[%]→[kg/m3]→[N]→[N]→[N]→[Nm]→[Nm]→[Nm]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[mbar→[mbar]→[mbar]→[mbar]→[mbar]→[mbar]→[N]→[°C]→[°C]→[L/min]→[W]→[W/K]'} {1×1 missing } {1×1 missing } {'02.08.2022→08' } {[ 58]} {'46.808→-0.0→0→42.451419→97440.000000→2747.840000→23.944000→48.167000→1.125151→190.029430→-1.040025→24.963842→5.668323→225.180367→-8.632680→4.973469→5.276467→6.254003→5.457921→4.365939→5.734513→6.224498→5.820748→1.492454→1.477490→2.035428→1.939299→2.402537→2.555415→3.348971→2.868781→6.134119→5.032489→5.684587→5.497022→5.423880→5.844911→7.126764→6.452095→3.440309→3.477351→3.658881→3.652628→3.494377→3.958303→3.761011→4.198308→0.000000→0.000000→0.000000→0.182638→0.000000→0.000000' } {'02.08.2022→08' } {[ 59]} {'52.358→-5.0→0→42.611887→97441.200000→2764.940000→24.322000→47.327000→1.123642→210.721356→-76.001284→26.071040→88.740052→252.588305→12.095614→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→0.000000→0.000000→0.000000→0.139043→0.000000→0.000000' } {'02.08.2022→09' } {[ 0]} {'57.896→-10.0→0→42.414539→97441.000000→2736.540000→24.640000→46.733000→1.122474→249.700103→-179.193928→34.067972→210.375328→299.671509→40.124381→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→NaN→0.000000→0.000000→0.000000→0.102659→0.000000→0.000000' } {'02.08.2022→09' } {[ 2]} {'16.453→5.0→0→42.469382→97440.000000→2740.790000→24.925000→46.182000→1.121315→210.274708→94.749321→27.919850→-99.283288→250.877907→-28.952380→4.254837→4.685409→5.643184→4.738926→3.920298→5.085000→5.891468→5.425929→1.222925→1.214788→1.716948→1.624163→2.045858→2.206987→2.927361→2.459074→6.248071→5.028299→5.852960→5.512444→5.526658→5.891837→7.146380→6.558506→3.254459→3.327796→3.516305→3.564396→3.464628→3.915232→3.770194→4.187859→0.000000→0.000000→0.000000→-0.029766→0.000000→0.000000' } {'02.08.2022→09' } {[ 3]} {'21.990→10.0→0→42.100788→97436.300000→2692.300000→25.098000→45.822000→1.120848→247.107995→207.510397→32.681409→-224.593804→296.968280→-47.728579→3.479251→4.014095→4.788371→3.987725→3.399686→4.275092→5.493334→4.896998→0.873039→0.861312→1.301504→1.230452→1.618516→1.763496→2.358921→1.973357→6.018073→4.736682→5.671217→5.442419→5.308567→5.637929→6.974420→5.938056→2.850111→2.953910→3.135825→3.192652→3.177201→3.663082→3.501401→3.934163→0.000000→0.000000→0.000000→0.004815→0.000000→0.000000'}
There does not appear to be anything in the file (other than a few dates and some integer values). There are 6 header lines, then a date (best read as a string or as a date — see Nonnumeric Fields in the formatSpec section of the documentation) and a single integer.
Fabio Taccaliti
Fabio Taccaliti le 26 Sep 2022
This is how it looks like :)

Connectez-vous pour commenter.

Réponse acceptée

Geoff Hayes
Geoff Hayes le 26 Sep 2022
@Fabio Taccaliti - perhaps instead you can use readtable to read the table from file and then extract the data you need. For example,
filename = 'fffff.txt';
tableData = readtable(Name_1,'Delimiter','\t','headerLines',6);
data = tableData(:,3:end);
  4 commentaires
Fabio Taccaliti
Fabio Taccaliti le 26 Sep 2022
Modifié(e) : Fabio Taccaliti le 26 Sep 2022
I tried but I have this strange error
Error in untitled (line 10)
data = table2array(tableData);
Caused by:
Error using datetime/horzcat (line 1398)
All inputs must be datetimes or date/time character vectors or date/time strings.
Geoff Hayes
Geoff Hayes le 26 Sep 2022
There must be some invalid data in one of your date or time columns. You may need to glance through the data to figure out which field is invalid. Or exclude those columns altogether (which I thought is what you wanted to do?).

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by