質問: csvインポート時に、日付をシリアル値でインポートしたい csvをインポートする際に、日付の列のみをシリアル値で読み込みたいのですが、方法が分かりませんでした。 行列、テーブル双方の場合でも可能な場合、それぞれの方法をご教示頂けますと嬉しいです。 現状思いつくのですと、以下のような手順になり、もっと簡単な方法がないかと思っています。 1csvをtableでインポート(日付はdatetime指定) 2日付をdatenumでシリアル値に変換 3日付以外のデータと再度合体
回答: 楽したいのでアプリを活用します 以下のコードはインポート機能を使ってそれをライブスクリプト化したものです matlabのフォルダーからbook4.csvをダブルクリックしてインポートアプリを立ち上げてください ライブスクリプトの生成で以下のコードが生成されます opts = delimitedtextimportoptions("numvariables", 6, "encoding", "utf-8"); % 範囲と区切り記号の指定 opts.datalines = [2, inf]; opts.delimiter = ","; % 列名と型の指定 opts.variablenames = ["ping_index", "distance_gps", "distance_vl", "ping_date", "ping_time", "ping_milliseconds"]; opts.variabletypes = ["double", "double", "double", "datetime", "datetime", "double"]; % ファイル レベルのプロパティを指定 opts.extracolumnsrule = "ignore"; opts.emptylinerule = "read"; % 変数プロパティを指定 opts = setvaropts(opts, "ping_date", "inputformat", "yyyy/mm/dd"); opts = setvaropts(opts, "ping_time", "inputformat", "hh:mm:ss"); % データのインポート book4 = readtable("book4.csv", opts); % 一時変数のクリア clear opts ここでシリアル値を付け加えます(コードを書いたのはここだけ) book4.ping_date_s = datenum(book4.ping_date); book4