How to make Nested while loops faster
4 ビュー (過去 30 日間)
古いコメントを表示
I am running a while loop that is scanning the serial port for data. This while loop is inside a bigger while loop that is continuously acquiring data from an instrument (a spectrometer).
The smaller while loop that scans the port continuously writes to a file until the while condition becomes False. I have noticed that this while loop takes so much time that it interferes with the data acquisition from the spectrometer. I use the commands fread(s) to read from serial port object s and fwrite to write to file. Both these processes seem extremely slow and compromise data acquisition.
Is there a way to speed this up? Is there something I can use that is faster than fread? Should I be writing an array instead of to a file? If so, how do I write to an array during a while loop where I'm unsure of how big the array will be beforehand...
0 件のコメント
回答 (1 件)
Walter Roberson
2016 年 4 月 4 日
It sounds as if you should be using a BytesAvailableFcn to trigger a callback when there is data available, and when there is, read BytesAvailableFcnCount worth of data.
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!