variables to import in readtable for a csv file

5 visualizaciones (últimos 30 días)
Mihai Milea
Mihai Milea el 27 de Sept. de 2021
Comentada: Stephen23 el 27 de Sept. de 2021
Hi . I have the following maybe silly question: I have a csv file where the first row are some numerical values and second row some names. I attached a test file.
I used openFileName = strcat(pricedir,'/', 'test.csv');
opts=detectImportOptions(openFileName);
opts.VariableNamingRule = "preserve";
open=readtable(openFileName,opts);
While the first row is correct the second one is all NaN
  2 comentarios
Mathieu NOE
Mathieu NOE el 27 de Sept. de 2021
hello
readtable works for column oriented files - not like your csv file which is row oriented
Mihai Milea
Mihai Milea el 27 de Sept. de 2021
Thank you . So what do I use instead?

Iniciar sesión para comentar.

Respuesta aceptada

Mathieu NOE
Mathieu NOE el 27 de Sept. de 2021
hello
as mentionned above , readtable is not appropriate for extracting row oriented files
you can do this (based on your example) :
filename = 'test.csv';
[data_num, data_str] = myreadfunction(filename)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [data_num, data_str]= myreadfunction(filename)
a = readlines(filename);
[m,~] = size(a);
data_num = str2num(char(a(1,:))); % first line
data_str = split(char(a(2,:)),','); % second line
end
  2 comentarios
Mihai Milea
Mihai Milea el 27 de Sept. de 2021
Works perfect .Many thanks!
Stephen23
Stephen23 el 27 de Sept. de 2021
Avoiding NUM2STR (which hides evil EVAL inside):
tmp = readlines('test.csv');
num = str2double(split(tmp{1},','))
num = 3×1
NaN 23 35

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by