MATLAB Answers

How can I automatically let Matlab input the file in sequence?

3 ビュー (過去 30 日間)
alan daniel
alan daniel 2020 年 7 月 20 日
コメント済み: alan daniel 2020 年 7 月 21 日
How can I let Matlab automatically input the file itself rather than one by one myself?
I mean, I want to put `Sample 1.wav` and then output `Sample 1.png` and then
put `Sample 2.wav` and then output `Sample 2.png` and then put `Sample 3.wav` and then output `Sample 3.png`
I do not want to type myself 1, 2, 3 and rather let the matlab run itself from `1 to 1,000`
[y,Fs] = audioread('sample1.wav');
spectrogram(y,'yaxis')
saveas(gcf,'sample1.png')
Then
[y,Fs] = audioread('sample2.wav');
spectrogram(y,'yaxis')
saveas(gcf,'sample2.png')
Then
[y,Fs] = audioread('sample3.wav');
spectrogram(y,'yaxis')
saveas(gcf,'sample3.png')

  8 件のコメント

表示 5 件の古いコメント
Stephen Cobeldick
Stephen Cobeldick 2020 年 7 月 21 日
The simplest is to follow one of the approaches shown in the MATLAB documentation:
alan daniel
alan daniel 2020 年 7 月 21 日
Thanks. it works well!
Roger J
Roger J 2020 年 7 月 21 日
great news Alan.
What did you go with, my suggestion or did you use Stephen's solution?
If you used the solution, please mark it as the answer.

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

採用された回答

Roger J
Roger J 2020 年 7 月 21 日
Can you try the following:
>> for i=1:1000
fn_read ="sample"+i+".wav"; % this is the file name to read from
fn_read = char(fn_read); % convert the string to a char array
fn_write ="sample"+i+".png"; % this is the file name to write to
fn_write = char(fn_write); % convert the string to a char array
[y,Fs] = audioread(fn_read);
spectrogram(y,'yaxis')
saveas(gcf,fn_write)
end
let me know if it works.

  2 件のコメント

alan daniel
alan daniel 2020 年 7 月 21 日
For MATLAB 2017b
Stephen Cobeldick
Stephen Cobeldick 2020 年 7 月 21 日
Defining strings and then converting to char is rather convoluted.
It is more efficient to use sprintf, as the documentation shows:

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

その他の回答 (1 件)

Khaled Hamed
Khaled Hamed 2020 年 7 月 21 日
for i=1:1000
[y,Fs] = audioread(['sample' num2str(i) '.wav']);
spectrogram(y,'yaxis')
saveas(gcf,['sample' num2str(i) '.png'])
end

  1 件のコメント

alan daniel
alan daniel 2020 年 7 月 21 日
This works too. Thanks.

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by