How to find data with specific data type.
3 ビュー (過去 30 日間)
古いコメントを表示
In my code generation, my target hardware does not support double-precision float, so I want to scan my models for any doubles before generating code.
Here is an example entry from my model file of what I want to find (it is in a Stateflow chart):
data {
id 203
ssIdNumber 100
name "cntr"
linkNode [117 0 204]
scope FUNCTION_INPUT_DATA
machine 1
props {
type {
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
}
dataType "double"
}
The following line of code does NOT work:
dataTypes = find_system(sys,'FindAll','on','LookUnderMasks','all','dataType','double');
Can anyone provide a script to find all such occurrences?
0 件のコメント
回答 (1 件)
Kaustubha Govind
2012 年 8 月 2 日
I think the safest way to check datatypes used in a model is to compile the model and check the compiled datatypes at the boundary of each block. You can do this for one block using something like:
vdp([],[],[],'compile');
d = get_param(gcb,'CompiledPortDataTypes');
vdp([],[],[],'term');
You will need to inspect 'd' to see if contains double.
(Note: if you need to disallow all floating-point types, you can simply uncheck Support: floating-point numbers in the Configuration Parameters window)
4 件のコメント
Kaustubha Govind
2012 年 8 月 6 日
I've used the Stateflow API in the past to look inside Stateflow objects, but I don't know what the exact commands to use in your case might be. Perhaps going through the documentation will give you some ideas.
参考
カテゴリ
Help Center および File Exchange で Schedule Model Components についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!