Readtable Returns "NaN" to the string type value if one column contains both number type and string type values

29 visualizzazioni (ultimi 30 giorni)
Hi, I have a quesiton regarding Matlab readtable commend
For example, I created a table on csv file as below, which one column includes number-type value at the first row and the string-type value at the second row.
Then I use readtable to read this csv file. It returns "NaN" to all string type value, as below. Therefore, I lost the information of the string-type data.
Can someone help me to resove this issue so I can read both number-type data and string-type data? I am currently using Matlab2023a.
Thank you in advance!

Risposta accettata

Stephen23
Stephen23 il 30 Ott 2023
Modificato: Stephen23 il 30 Ott 2023
Use READCELL:
C = readcell('test.csv')
C = 3×4 cell array
{'value0' } {'value1' } {'value2' } {'value3' } {[ 1]} {[ 2]} {[ 3]} {[ 4]} {'gfedcba'} {'gfedcba'} {'gfedcba'} {'gfedcba'}
Everything that is text is text, everything that is numeric is numeric. Easy.

Più risposte (1)

Dyuman Joshi
Dyuman Joshi il 30 Ott 2023
Modificato: Dyuman Joshi il 30 Ott 2023
Each variable/column of a table is expected to be a homogenous array. The first value read in each column is a numeric value, and the rest of the values are not. Thus they are treated as Not a Number.
You can either
> Read all data as strings
or
> Use readcell and (if you want to,) convert to table via cell2table

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by