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!