私は現在、入力を受け取り、この入力を使用してポイントを xy 空間にマップする MATLAB のグラフ作成プログラムに取り組んでいます。ただし、プログラムは、ポイントの位置に応じて周波数が変化する連続音も出力する必要があります。
楽音生成はできましたが、プログラムの性質上連続して音を鳴らすことができませんでした。(トーン生成間のコード) ループの 1 回の繰り返しで周波数を変更するコードと、別のループでトーンを生成するコードを含む parfor ループを使用して、これを解決できると考えましたが、次の理由でそれを取得できないようです。エラー:
警告: 一時変数周波数は、parfor ループの各反復の開始時にクリアされます。ループの前に割り当てられた値はすべて失われます。parfor ループで割り当てられる前に周波数が使用されると、実行時エラーが発生します。MATLAB の Parallel for ループ、「一時変数」を参照してください。
in multiThreadingtest at 5 multiThreadingtest の使用エラー (5 行目) クリアされた可変周波数への参照。
原因: クリアされた可変周波数への参照。
そして私のコード:
global frequency
frequency = 100;
parfor ii=1:2
if ii==1
Fs = 1000;
nSeconds = 5;
y = 100*sin(linspace(0, nSeconds*frequency*2*pi, round(nSeconds*Fs)));
sound(y, Fs);
elseif ii==2
frequency = 100
pause(2);
frequency = 200
pause(2);
frequency = 300
pause(2);
end
end