複数のCSVファイルのインポート

19 visualizaciones (últimos 30 días)
海
el 13 de Oct. de 2022
Respondida: Atsushi Ueno el 15 de Oct. de 2022
複数のCSVファイルのインポートを行いたいのですが、以下のプログラミングを行っても上手くいきません、改善点を教えていただきたいです。ちなみにファイル名はd_1.csv ,d_2.csv ,d_3.csv.........となっています。
P = 'relative/absolute path to the folder where the files are saved';
S = dir(fullfile(P,'*.csv'));
for k = 1:numel(S)
F = fullfile(P,S(k).name);
S(k).data = csvread(F);
end

Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 15 de Oct. de 2022
どんなファイルの内容か分からないと明確な回答は出来ませんが:
タイトル行(項目名など)が含まれると読み込みに失敗します。オフセットを指定する必要があります。
M = csvread(filename,R1,C1) は、
行のオフセット R1 および列のオフセット C1 からファイルのデータの読み取りを開始します。
たとえば、オフセット R1=0 および C1=0 はファイルの最初の値を示します。
P = pwd; % ここではカレントフォルダで作業します
S = dir(fullfile(P,'*.csv'));
for k = 1:numel(S)
F = fullfile(P,S(k).name)
S(k).data = csvread(F,1,0); % 行のオフセット=1、列のオフセット0 からファイルのデータの読み取りを開始
end
F = '/users/mss.system.ynUYNY/d_1.csv'
F = '/users/mss.system.ynUYNY/d_2.csv'
F = '/users/mss.system.ynUYNY/d_3.csv'
S(3).data' % 上手く読み込めた
ans = 2×11
0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
S(3).data = csvread(F); % オフセット指定が無いと読み取りに失敗する
Error using dlmread
Unable to parse a "Numeric" field when reading row 1, field 1.
Actual Text: "d_3_1,d_3_2"
Expected: A number or literal "NaN", "Inf". (possibly signed, case insensitive)

Error in csvread (line 53)
m=dlmread(filename, ',', r, c); %#ok<*DLMRD>

Más respuestas (1)

Atsushi Ueno
Atsushi Ueno el 15 de Oct. de 2022
>csvread は推奨されません。代わりに readmatrix を使用してください。
P = pwd; % ここではカレントフォルダで作業します
S = dir(fullfile(P,'*.csv'));
for k = 1:numel(S)
F = fullfile(P,S(k).name);
S(k).data = readmatrix(F); % 項目欄を判別してくれるのでオフセットの指定は不要
end
S(3).data' % 上手く読み込めた
ans = 2×11
0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!