csvデータの読み込み

csvファイルの任意の位置データのみ読み込む方法を教えてください。
(例:csvファイルの2行3列目の日付データのみを読み込みたい場合)

 Accepted Answer

Hernia Baby
Hernia Baby on 31 Jul 2021

2 votes

バージョンにもよりますが readtable をおすすめします
opts = detectImportOptions('Sample.xlsx');
preview('Sample.xlsx',opts)
ans = 8×2 table
Timestamps RoomTemp ____________________ ________ 17-Jul-2021 00:01:03 25.947 17-Jul-2021 00:31:03 26.054 17-Jul-2021 01:01:03 26.191 17-Jul-2021 01:31:03 26.328 17-Jul-2021 02:01:03 26.032 17-Jul-2021 02:31:03 26.558 17-Jul-2021 03:01:03 26.619 17-Jul-2021 03:31:03 26.629
M = readtable('Sample.xlsx','Range','A2:A4')
M = 3×1 table
Var1 ____________________ 17-Jul-2021 00:01:03 17-Jul-2021 00:31:03 17-Jul-2021 01:01:03

5 Comments

Hernia Baby
Hernia Baby on 31 Jul 2021
csvも同様の操作で可能です
marques
marques on 31 Jul 2021
下記 readtable 説明内にRangeオプションはスプレッドシートのみとありますが、
csvファイルはどのオプションを使用するのがよいでしょうか。
<https://jp.mathworks.com/help/matlab/ref/readtable.html#btx_238-1_sep_btx_238-1-opts>
また読み込みたいCSVファイルデータ例は下記の
2行3列目にある日付データのみになります。
5行目以降の表データは読み込まない方法があればと考えております。
それでしたら xlsread での指定がいい気がします
filename = 'Sample_1.xlsx';
sheet = 'Sheet1';
xlRange = 'C2';
Ext = xlsread(filename,sheet,xlRange)
Ext = 20210731
marques
marques on 1 Aug 2021
ご回答いただきありがとうございます。
xlsread の説明文を読みましたら、基本エクセルファイルようだと思いましたので、
readmatrix関数について調べてみました。そうするとRangeオプションを使用して
任意の位置のデータが取得できましたので、実際のデータで使用してみます。
下記のコードで試しました。(test1.csvは添付していただいたSample_1.xlsxをcsvにしたものです。)
date = readmatrix("test1.csv",'Range',[2 3 2 3]);
Hernia Baby
Hernia Baby on 1 Aug 2021
返信ありがとうございます。
csvでもxlsreadは使用可能ですが、
おっしゃる通り、2019a以降のバージョンではreadmatrixが有効です。
バージョンによって使い分けてみてください。

Sign in to comment.

More Answers (0)

Asked:

on 31 Jul 2021

Commented:

on 1 Aug 2021

Community Treasure Hunt

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

Start Hunting!