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

 採用された回答

Hernia Baby
Hernia Baby 2021 年 7 月 31 日

2 投票

バージョンにもよりますが 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 件のコメント

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

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

その他の回答 (0 件)

質問済み:

2021 年 7 月 31 日

コメント済み:

2021 年 8 月 1 日

Community Treasure Hunt

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

Start Hunting!