readtableで1行目だけを読み取りたい

Matlab R2016a使用者です.
readmatrixなどの関数はないので,readtableでcsvファイルの一部をインポートしたいのですが上手くできないことが多いです.
本来無視されるようなヘッダー情報をむしろ抽出したいので,
readtable(file_name,'HeaderLines',0)
このようにHeaderlineの指定を無くして読み込むのですが,数回に1度,1行目のヘッダーを読み込めないことがあります.
元のcsvデータが特殊で,ヘッダー行の上にさらにヘッダーが1セルだけある形式となっているためこのような不具合が起こるのでしょうか.
(m×n行列の左上に1×1のヘッダーが乗っている,といったデータ配列になっています.)
他に何か良い方法はありますでしょうか.

3 件のコメント

Hernia Baby
Hernia Baby 2021 年 9 月 8 日
すみません、おっしゃっているcsvのイメージは添付のようなものですか?
KO
KO 2021 年 9 月 8 日
はい、そうです。
ただ添付とは違い、列ベクトルのテーブルで、2行目にヘッダー行が来ます。
KO
KO 2021 年 9 月 8 日
readtable(file_name,'HeaderLines',0)
で基本的には、はみ出した1行目も読み取ることはできるのですが、なぜだか不具合も多いのです。
readtableは2019以降推奨されていないので、他の関数で代替できるものがあればと思っています。

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

 採用された回答

Hernia Baby
Hernia Baby 2021 年 9 月 8 日
編集済み: Hernia Baby 2021 年 9 月 8 日

1 投票

ヘッダー名だけがほしいとのことなので、それ以降は数字かなと仮定しています
ここでは xlsread で文字だけをcell型で抽出します
ブラウザでは何故か csv形式を xlsread で読み込めないので xlsx形式を例にしています
[~,str,~] = xlsread('Sample_1.xlsx')
str = 2×6 cell array
{'Sample'} {0×0 char} {0×0 char} {0×0 char} {0×0 char} {0×0 char} {'a' } {'b' } {'c' } {'d' } {'e' } {'f' }
name = str(end,:)
name = 1×6 cell array
{'a'} {'b'} {'c'} {'d'} {'e'} {'f'}

1 件のコメント

KO
KO 2021 年 9 月 8 日
ありがとうございます!xlsreadでうまくできました。
迅速にアドバイスいただきありがとうございました。

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchangecell 配列 についてさらに検索

タグ

質問済み:

KO
2021 年 9 月 8 日

コメント済み:

KO
2021 年 9 月 8 日

Community Treasure Hunt

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

Start Hunting!