csvデータを使って​畳み込みニューラルネ​ットワーク(cnn)​で処理したい

40000×125のcsvファイル(gg.csv)があります。列ごとに抽出をしてcnnで処理をしたいです。以下が列ごとに抽出するためのコードです。
data = csvread('gg.csv');
for ii=1:40000
grade1newall = ['gg.csv',num2str(ii),'.csv']; %数値を文字配列に変換
csvwrite('filename', data(ii,:));
end
そのあとimageDatastoreで読み込めるようにcsvの処理を行ったのですが、
function data = readDatastoreCSV(gg) %imagedatestoreで読み込めるようにCSVの処理
data = csvread('gg.csv');
data = reshape(data, 40000,125,[]);
imds = imageDatastore('gg.csv','ReadFcn',@csvread,'FileExtensions','.csv');
imds.ReadFcn = @readDatastoreCSV;
data = read(imds);
_ *エラー: matlab.io.datastore.ImageDatastore/subsasgn (line 442) readDatastoreCSV はスクリプトです。
エラー: Untitled4 (line 7) imds.ReadFcn = @readDatastoreCSV;*_
のエラーが出てしまいます。なぜなのでしょうか。

 채택된 답변

Etsuo Maeda
Etsuo Maeda 2018년 10월 29일

0 개 추천

imds = imageDatastore('gg.csv','ReadFcn',@csvread,'FileExtensions','.csv');
としてimdsのReadFcnにMATLAB標準関数のcsvreadを設定したあとに、
endimds.ReadFcn = @readDatastoreCSV;
としてimdsのReadFcnをreadDatastoreCSVに変更するという操作をしているコードのようです。 エラーメッセージは、readDatastoreCSVが関数として定義されておらず、スクリプトである旨のエラーを表示しています。 readDatastoreCSVはMATLAB標準関数ではありませんので、ユーザカスタム関数として定義しておく必要があります。 当該のm-scriptの内部に書いてもよいですし、パスの通った場所にreadDatastoreCSV.mを作成してもよいかと思います。
function varargout = readDatastoreCSV(varargin)
hogehoge
end
おそらくは https://jp.mathworks.com/matlabcentral/answers/415171-csv のAnswersを参照されたと思います。関数の取り扱いについて、もう一度よくご確認ください。

추가 답변 (1개)

Natsuo OKADA
Natsuo OKADA 2018년 10월 31일

0 개 추천

m scriptの中に書いたらできました。 ありがとうございました。

카테고리

도움말 센터File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2018년 10월 24일

답변:

2018년 10월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by