複数のCSVデータを​まとめてfigure​化し、保存する方法に​ついて。

조회 수: 11 (최근 30일)
cho hunseki
cho hunseki 2022년 11월 11일
댓글: cho hunseki 2022년 11월 11일
初歩的な質問かもしれませんが、ご回答頂けると幸いです。
フォルダ内にあるn個のcsvデータをグラフにしてfigure化し、n個の画像ファイルとして保存したいと考えております。
現在以下のコードで試してみました。
csvファイルは2行n列であり、1行目を抜き出すコードにしています。
list = dir('*.csv');
for ii = 1:length(list)
a = readmatrix(list(ii).name);
plot(a(1,:));
saveas(gcf,"filename.png");
end
上記コードだとn個のcsvファイルのうち、任意の1個の画像データが保存されております。
おそらくn個分のファイル名を準備できていないため、上手くいかないと考えております。
その他にも原因は考えられるでしょうか。また、具体的にどのようにすれば宜しいでしょうか。
ご回答頂けると幸いです。宜しくお願い致します。

채택된 답변

Atsushi Ueno
Atsushi Ueno 2022년 11월 11일
편집: Atsushi Ueno 2022년 11월 11일
> おそらくn個分のファイル名を準備できていないため、上手くいかないと考えております。
> その他にも原因は考えられるでしょうか。
⇒いいえ、その原因だけで良いと思います。
> 具体的にどのようにすれば宜しいでしょうか。
⇒例えば出力ファイル名は「拡張子csvをpngに替えた文字列」として随時変更していけば上書きせずに済みます。
list = dir('*.csv');
for ii = 1:length(list)
a = readmatrix(list(ii).name);
plot(a(1,:));
image_file_name = regexprep(list(ii).name,'\.csv$','\.png');
saveas(gcf,image_file_name); % 出力ファイル名は拡張子csvをpngに替えた文字列とする
end
  댓글 수: 1
cho hunseki
cho hunseki 2022년 11월 11일
Atsushi Uenoさん
ご回答頂きありがとうございます。
もともとのコードを活かして頂き、わかりやすかったです。
やりたいことが一発でできました!
ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Hernia Baby
Hernia Baby 2022년 11월 11일
편집: Hernia Baby 2022년 11월 11일
ファイル名が同じため、更新する状態になっていると思われます。
今回ですとnum2strの使用をおすすめします。
for ii = 1:5
a = ['sample',num2str(ii,'%03d'),'.png']
end
a = 'sample001.png'
a = 'sample002.png'
a = 'sample003.png'
a = 'sample004.png'
a = 'sample005.png'
  댓글 수: 1
cho hunseki
cho hunseki 2022년 11월 11일
Hernia Babyさん
これまでの質問にも全てご回答頂きありがとうございます。
いつも大変お世話になっております。
ご提案頂いたコードも大変参考になりました。
また質問する機会がありましたら、宜しくお願い致します。
ありがとうございました。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!