headerが複数階​層のcsvファイルを​構造的に読み込む方法

12 次查看(过去 30 天)
Yutaro Ueoka
Yutaro Ueoka 2022-10-14
评论: Yutaro Ueoka 2022-10-14
csvファイルをtableかmatrixとしてでもなんでも良いのですが、読み込みたいです。
質問1:csvファイルの構造が下記のような場合、どのようにしたら読み込めますでしょうか?
layer1 A A A A
layer2 a a b b
layer3 x y x y
--- --- --- ----
t1 1 2 4 5
t2 2 3 5 6
t3 3 4 6 7
...
readtableだと、headerをlayer1か2か3のどれかしか選ぶことができず情報が潰れてしまいます。
質問2:layer1,2,3をconcatenateして、A_a_xのようにすることも考えたのですが、それもどのように行えばよいか分かりませんでした。そちらに関しても分かる方がいらしたら教えて頂きたいです。
どうぞよろしくお願いいたします。

采纳的回答

Akira Agata
Akira Agata 2022-10-14
readcell でまずファイル全体を読み込んだ後、変数名に関する部分と数値データの部分を分けて、最後にテーブル型変数として纏めるという方法はいかがでしょうか?以下はその一例です。
% readcell でとりあえず全体を読み込む
C = readcell("sample.csv");
% 変数名に関する部分と数値データ部分に分ける
C1 = C(1:3, 2:end);
C2 = C(4:end, 2:end);
% 変数名を作成する
varName = join(C1', "_");
% 数値データ部分とあわせてテーブル型変数に整理
T = array2table(cell2mat(C2), "VariableNames", varName)
T = 3×4 table
A_a_x A_a_y A_b_x A_b_y _____ _____ _____ _____ 1 2 4 5 2 3 5 6 3 4 6 7
  1 个评论
Yutaro Ueoka
Yutaro Ueoka 2022-10-14
ありがとうございます!
readcellを知らなかったのですが、教えて頂いた通りでやりたいことができました!!迅速にご回答頂けて大変助かりました。ありがとうございます。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 データのインポートと解析 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!