1

サンプルを取得し、MATLABでオーディオのタスクを実行するアナログ入力オブジェクト(winsound)があります。

set(AI, 'SamplesAcquiredFcnCount',num_samples)
set(AI, 'SamplesAcquiredFcn',{@function1,AI,num_samples})

私の理解では、アナログ入力オブジェクトはサンプルを取得し続けるため、サンプルが設定された数に達するとfunction1が呼び出され続けます。したがって、「優先順位」があります。

これで、 function1が更新する(グローバル)変数を継続的に処理したい別の関数(function2 )ができました。私の問題は、現在の実装では、function2が「戻って」、アナログ入力から更新された変数を確認しないことです。

一定の期間または条件までfunction2を継続的に呼び出したいのですが、アナログ入力function1から更新された変数を表示するにはどうすればよいですか?(これらはすでにグローバルですが、function2が開始されると、更新された変数は取得されません。開始時の場合のみ取得されます)。

私はここで私を助けるために並列計算ツールボックスの内容を調べようとしましたが、何も見つかりませんでした。私は本当に助けに感謝します!これは本当に私のプロジェクトをつなぎ合わせるでしょう

4

1 に答える 1

2

最後に、適切な並列操作を確保するための最良の方法は、function1 内で function2 を呼び出すことです。function1 はアナログ入力オブジェクトのコールバックとして適切に制御されるため、これが最も安全な方法です。

于 2012-10-17T15:36:50.320 に答える