フィルターのクリア

variables to import in readtable for a csv file

3 ビュー (過去 30 日間)
Mihai Milea
Mihai Milea 2021 年 9 月 27 日
コメント済み: Stephen23 2021 年 9 月 27 日
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 件のコメント
Mathieu NOE
Mathieu NOE 2021 年 9 月 27 日
hello
readtable works for column oriented files - not like your csv file which is row oriented
Mihai Milea
Mihai Milea 2021 年 9 月 27 日
Thank you . So what do I use instead?

サインインしてコメントする。

採用された回答

Mathieu NOE
Mathieu NOE 2021 年 9 月 27 日
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 件のコメント
Mihai Milea
Mihai Milea 2021 年 9 月 27 日
Works perfect .Many thanks!
Stephen23
Stephen23 2021 年 9 月 27 日
Avoiding NUM2STR (which hides evil EVAL inside):
tmp = readlines('test.csv');
num = str2double(split(tmp{1},','))
num = 3×1
NaN 23 35

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeWhos についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by