sound関数を使う​と「入力引数が多すぎ​ます」とでる

56 views (last 30 days)
L.K
L.K on 13 May 2023
Commented: L.K on 14 May 2023
wavファイルからy1とFs1の情報を取得しsound関数の引数としたら以下のエラーが発生しました.
>> sound(y1, Fs1)
次を使用中のエラー: sound
入力引数が多すぎます。
引数のサイズは
>> size(y1)
ans =
614400 1
>> size(Fs1)
ans =
1 1
です.
どうすればこの音源を再生できますでしょうか.
  1 Comment
Atsushi Ueno
Atsushi Ueno on 14 May 2023
sound 関数の受け付ける入力引数の数(1~3)は適当であるにも関わらず当該エラーが出ている事が事実であれば、MATLABの sound 関数と同名の sound 関数が存在し、そちらが優先して呼び出されているのではないでしょうか?

Sign in to comment.

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 14 May 2023
可能性のある原因を再現するプログラムと添付ファイルを準備しました。
コメントを外して、現在のフォルダ (Pathの通っているフォルダ) にある sound.m を別フォルダ (Pathの通っていないフォルダ) に移動させると、MATLAB組み込みの sound 関数の方が優先して実行される事を確認する事が出来ます。
type sound % 添付ファイル sound.m の中身を表示(入力を出力に渡すだけ)(引数が1つ存在しなければ警告を出す)
function out = sound(in) if nargin~=1, error(message('MATLAB:audiovideo:playsnd:invalidInputs')); end out = in; end
load gong.mat
%mkdir other
%movefile sound.m other
sound(y,Fs);
Error using sound
Too many input arguments.
  2 Comments
Atsushi Ueno
Atsushi Ueno on 14 May 2023
どの sound 関数が実行されるのか確認する方法です。MATLAB組み込みの sound 関数が使用出来る場合は、下記に近い結果になり、当該エラーが発生している状況では、パスの通った場所に同名の sound 関数が存在するはずです。
which sound
/MATLAB/toolbox/matlab/audiovideo/sound.m
L.K
L.K on 14 May 2023
確認したところ,
MATLABにsound関数と同名のmatlabファイルが優先して呼び出されていました.
そのファイルを消したところ音源を再生することができました.
ご回答頂き大変ありがとうございました.

Sign in to comment.

More Answers (0)

Categories

Find more on Audio I/O and Waveform Generation in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!