アプリ版:「スタンプのみでお礼する」機能のリリースについて

MATLABで次のようなプログラムをfor文で回したいです。

Y = wavread('aaa.wav');

for N = 0:5:360
load(sprintf('SP%03d.dat',N));
eval(sprintf('F%d = SP%03d',N,N));

C = conv((sprintf('F%d',N)),Y);
CNAME = sprintf('C%03d.wav',N);
wavwrite(C,32000,16,CNAME);

end

このプログラムだと
SP000~SP360をF0~F360へとすることはできるのですが、
そのF0~F360をそれぞれY(aaa.wav)と畳みこむことができません。
どうしたらいいか教えてください。

A 回答 (1件)

C = conv((sprintf('F%d',N)),Y);


convに文字列入れても・・・・・。

eval(sprintf('C = conv(F%d,Y)',N));


matlabとしては効率の悪いプログラムな気がします。
F0~F360へコピーする必要あるんですか?

SP000~SP360が元から2次元配列なら、
convはfor文使わずconv2で一発で高速ですね(メモリがあるなら)。

CNAME = sprintf('C%03d.wav',N);
wavwrite(C,32000,16,CNAME);
はfor文使わないと無理ですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!