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

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

3 comentarios

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

Iniciar sesión para comentar.

 Respuesta aceptada

Hernia Baby
Hernia Baby el 8 de Sept. de 2021
Editada: Hernia Baby el 8 de Sept. de 2021

1 voto

ヘッダー名だけがほしいとのことなので、それ以降は数字かなと仮定しています
ここでは 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 comentario

KO
KO el 8 de Sept. de 2021
ありがとうございます!xlsreadでうまくできました。
迅速にアドバイスいただきありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre cell 配列 en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

KO
el 8 de Sept. de 2021

Comentada:

KO
el 8 de Sept. de 2021

Community Treasure Hunt

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

Start Hunting!