【发布时间】:2013-06-28 18:54:08
【问题描述】:
我目前正在 MATLAB 中开发一个绘图程序,该程序接受输入并使用此输入将一个点映射到 x-y 空间。但是,程序还应该输出一个连续的音调,其频率会根据点的位置而变化。
我能够完成音调生成,但由于程序的性质,我无法让音调连续工作。 (音调生成之间的代码)我想我可以使用 parfor 循环来解决这个问题,该循环的代码改变循环的一次迭代中的频率,以及在另一个循环中生成音调但似乎无法得到它的代码,原因如下错误:
警告:临时可变频率将在 parfor 循环的每次迭代的开始。分配给的任何值 它在循环将丢失之前。如果在使用频率之前使用它 在 parfor 循环中分配,会发生运行时错误。见并行 MATLAB 中的 for 循环,“临时变量”。
在 multiThreadingtest 5 错误 using multiThreadingtest (line 5) Reference to a clear variable frequency.
原因: 引用已清除的变量 频率。
还有我的代码:
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
【问题讨论】:
-
尝试并结帐this SO question,可能是您需要的。
标签: multithreading matlab parfor tone-generator