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

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}

 採用された回答

Akira Agata
Akira Agata 2020 年 10 月 29 日

1 投票

以下の方法ではいかがでしょうか?
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 件のコメント

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

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

その他の回答 (0 件)

カテゴリ

質問済み:

2020 年 10 月 29 日

編集済み:

2020 年 11 月 2 日

Community Treasure Hunt

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

Start Hunting!