Best way to buffer vector data in Simulink for processing over a time window
41 ビュー (過去 30 日間)
古いコメントを表示
I'm working with a lidar-equipped robot, and every 0.2 seconds it provides an array of 360 values corresponding to the return intensity received at each angle. For my application, I need to do some statistical analysis on the data over a user-defined time-window. For offline processing in MATLAB, I've just been appending each new array of scan values to a matrix, so that I have a 360-column "Intensities" matrix which grows over time, and I can select the time-window for processing by selecting the appropriate rows from the matrix.
intensitiesMatrix(i,:) = new_scandata_array;
Now I'm trying to transition my code to Simulink (particularly because I want to use Stateflow for certain aspects of my application) and I want to do the same kind of data buffering so I can perform windowed processing on the data in real-time. For some reason I'm having a hard time figuring out the best way to collect my successive scan vectors into a form that I can then process, as I did in my regular MATLAB approach. I've looked a bit at Data Stores; is that the right approach? Or is there a good way to do this with matrices as I was doing in MATLAB?
0 件のコメント
採用された回答
Jonas
2021 年 7 月 29 日
Using Data Stores would indeed be a solution.
However, the dimensions of your matrix increases over time, making it a variable size variable. This has many implications, and certainly is not good code to deploy on a physical hardware target. At some point it would just run out of memory. Typically you will need to set a maximum matrix size that it may grow into to make sure you don't get a memory overrun.
4 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Development Computer Setup についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!