MATLAB Answers

xlsreadをre​adcellに置き換​え時の空白データの処​理

조회 수: 26(최근 30일)
Mamoru Mabuchi
Mamoru Mabuchi 2020년 11월 12일
편집: Mamoru Mabuchi 2020년 11월 13일
xlsreadをreadcellに置き換えた時の空白処理について、教えていただきたいです。
[~,~,raw]= xlsread(xlsfile_name,sheet_name);
↓置き換え
raw= readcell(xlsfile_name, 'Shhet', sheet_name)
上記置き換えを実施したのですが、エクセルのデータに空白があると、
’missing’になってしまいます。
xlsreadと同様に'NaN'にするには、どのようにすれば良いですか?
  댓글 수: 1
Akira Agata
Akira Agata 2020년 11월 12일
readmatrixreadtable 関数であれば欠損部分は NaN になると思いますが、いかがでしょうか?(あるいは、何らかの理由で readcell 関数の使用をご希望でしょうか?)

댓글을 달려면 로그인하십시오.

답변(3개)

Mamoru Mabuchi
Mamoru Mabuchi 2020년 11월 12일
エクセルファイルが、1行目に変数名、2行目以降にデータが入っているため、
そのまま読める(読み込み後の変数の型が同じ)ので、readcell関数を選択しました。
他の方法としては、下記を考えていますが、その他に簡単に変換する方法はありますでしょうか?
readtableで読み込み開始行を1行目に指定  → table2cell で型変換

Akira Agata
Akira Agata 2020년 11월 12일
1行目に変数名、2行目以降にデータが入っているということであれば、readtable 関数が適しているかと思います。もし変数名が日本語などの場合は、以下のように 'PreserveVariableNames' オプションを true に設定することでうまく読み取れるかと思いますがいかがでしょうか?
T = readtable(xlsfile_name,'PreserveVariableNames',true)

Mamoru Mabuchi
Mamoru Mabuchi 2020년 11월 13일
편집: Mamoru Mabuchi 2020년 11월 13일
アドバイスありがとうございます。
読み込んだ後の処理の都合により、xlsreadで読み込んだ時と同じ値、同じ型、同じサイズにしたいです。
試しにreadtableで読み込んだ値を下記にて変換しました。
raw = [raw.Properties.VariableNames ; table2cell(raw)];
読み込んでいるエクセルファイルには、1行目に変数名、2行目以降にデータのものもあれば、2行目に変数名、3行目以降にデータのものも混在しております。
後者の場合、上手く変換できず、困っています。
読み込んだ後のデータ開始行もxlsreadで読み込んだ時と同じにしたいです。
また、読み込み後にisnan関数を使って判定をしているので、空欄をNaNで埋めたいです。
アドバイスいただけないでしょうか

제품

Community Treasure Hunt

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

Start Hunting!