readtable produces apparent gibberish when reading csv file
    9 ビュー (過去 30 日間)
  
       古いコメントを表示
    
OK, I have a readtable puzzle.
I have a comma separated list, stored in 'a.csv' I'd like to read:
```
bathTargets,mixtures,firstFile,lastFile
lower,normal_saline,745_043_0000.abf,745_043_0060.abf
upper,"normal_saline,ptx",745_043_0000.abf,745_043_0060.abf
```
When I call readtable('a.csv') I get very odd output
```
>> readtable('a.csv')
Warning: Column headers from the file were modified to make them valid MATLAB identifiers before
creating variable names for the table. The original column headers are saved in the
VariableDescriptions property.
Set 'VariableNamingRule' to 'preserve' to use the original column headers as table variable names. 
ans =
  1×6 table
      lower_normal           saline_745         x043     x0000_abf_745      x043_1     x0060_abf  
    _________________    ___________________    ____    ________________    ______    ____________
    {'upper,"normal'}    {'saline,ptx",745'}     43     {'0000.abf,745'}      43      {'0060.abf'}
```
If I make a similar csv table, b.csv, as
```
bathTargets,mixtures,firstFile,lastFile
lower,"normal_saline",745_043_0000.abf,1
upper,"normal_saline,ptx",745_043_0000.abf,2
```
then readtable does what I expect:
```
readtable('b.csv')
ans =
  2×4 table
    bathTargets          mixtures                firstFile          lastFile
    ___________    _____________________    ____________________    ________
     {'lower'}     {'normal_saline'    }    {'745_043_0000.abf'}       1    
     {'upper'}     {'normal_saline,ptx'}    {'745_043_0000.abf'}       2   
```
If I open a.csv in Excel, it looks correct, and I can save it as a.xlcs and I get what I expect:
```
readtable('a.xlsx')
ans =
  2×4 table
    bathTargets          mixtures                firstFile                lastFile      
    ___________    _____________________    ____________________    ____________________
     {'lower'}     {'normal_saline'    }    {'745_043_0000.abf'}    {'745_043_0060.abf'}
     {'upper'}     {'normal_saline,ptx'}    {'745_043_0000.abf'}    {'745_043_0060.abf'}
```
Does anyone know why reading a.csv fails? 
Thanks
Steve
0 件のコメント
採用された回答
  Voss
      
      
 2024 年 10 月 31 日
        Looks like readtable decides the delimiter for a.csv is '_' (underscore). I don't know why.
opts = detectImportOptions('a.csv');
opts.Delimiter
Specifying that ',' (comma) is the delimiter returns the correct result:
readtable('a.csv','Delimiter',',')
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Environment and Settings についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

