MATLAB Answers

excelデータのインポートに関して

4 views (last 30 days)
excelデータのインポートの際に、cell配列にする質問です。
excelデータには、60×27のデータがあります。それを60の行に1×27のデータを持ったcell配列(60×1の行列に変換)にするにはどうしたらいいですか?
cell配列としてデータをインポートし、そのcell配列を分解する方法も試しましたが、上手く出来ませんでした。
上手く説明出来ないので、例を示します。
例)4×5 →  4×1(1つの行に5列のデータを持ったcell配列)
1 2 3 4 5    {1 2 3 4 5}
5 6 7 8 9 → {5 6 7 8 9}
1 2 3 4 5 {1 2 3 4 5}
5 6 7 8 9 {5 6 7 8 9}

  0 Comments

Sign in to comment.

Accepted Answer

Akira Agata
Akira Agata on 29 Oct 2020
以下の方法ではいかがでしょうか?
A = readmatrix('sample.xlsx');
C = mat2cell(A,ones(1,size(A,1)));
>> C
C =
4×1 の cell 配列
{1×5 double}
{1×5 double}
{1×5 double}
{1×5 double}

  3 Comments

勇輝 岡安 
勇輝 岡安  on 29 Oct 2020
60×1のcell配列に出来ました!!!
研究が進みます。ご回答ありがとうございました。
勇輝 岡安 
勇輝 岡安  on 2 Nov 2020
このcell配列にしたデータに関する追加の質問です。
このデータを学習用と検証用に分けて学習をさせたいのですが、どの関数を使えば可能ですか?
Akira Agata
Akira Agata on 2 Nov 2020
うまくデータの整理に役立ったようで良かったです。
さて追加のご質問についてですが、正直なところ用途によって変わってくるかと思います。
単純に配列を学習用と検証用に分けたいということでしたら、cvpartition 関数が役立つかと思います。
また、いくつかの分類・回帰用の関数では、事前に学習用と検証用にデータを分けることなく交差検証などの評価を実施することができます(たとえばSVMによる分類をおこなう fitcsvm 関数の 'CrossVal' オプションを 'on' にするなど)。
その他、分類・回帰学習器アプリでも、事前に学習用と検証用にデータを分けることなく交差検証などの評価を実施することができますので、ぜひお試しください。
https://jp.mathworks.com/help/stats/classificationlearner-app.htm
https://jp.mathworks.com/help/stats/regressionlearner-app.htmll

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!