Display "fixdt" data type in Simulink format

12 ビュー (過去 30 日間)
aida_p
aida_p 2023 年 3 月 16 日
編集済み: Alexander Carmeli 2023 年 6 月 13 日
Hi!
Is there is way to convert a data type information from 'fixdt(1,16,0)' format to the compiled Simulink data type format?
'fixdt(1,16,0)' --> 'int16'
fixdt(0,16,-5)' --> 'ufix16_E5'
'fixdt(1,5,12)' --> 'sfix5_En12'
I would like to get a simulink.parameter variable data type in this form.
Thanks!

採用された回答

Abhijeet
Abhijeet 2023 年 4 月 5 日
Hi,
You can convert the data type information from 'fixdt(1,16,0)' format to the compiled Simulink data type format using the following rules:
  1. If the first argument of the fixdt() function is 0, the Simulink data type format will start with 'u', which means unsigned. If the first argument is 1, the Simulink data type format will start with 's', which means signed.
  2. The second argument of the fixdt() function specifies the number of bits in the data type. This can be directly translated to the Simulink data type format as 'intN' or 'uintN', depending on the sign of the data type.
  3. The third argument of the fixdt() function specifies the position of the binary point. If this value is positive, it means the binary point is to the right of the least significant bit, and the Simulink data type format should be suffixed with '_En', where N is the absolute value of the third argument. If the value is negative, it means the binary point is to the left of the most significant bit, and the Simulink data type format should be suffixed with '_E', followed by the absolute value of the third argument.
For more information you can refer to the documentation - Fixdt
Hope this resolves your query.
  1 件のコメント
aida_p
aida_p 2023 年 4 月 5 日
I was hoping there is a built-in function that does this conversion, but knowing there isnt one, I will just write my own. :) Thanks for the reply.

サインインしてコメントする。

その他の回答 (1 件)

Alexander Carmeli
Alexander Carmeli 2023 年 6 月 13 日
編集済み: Alexander Carmeli 2023 年 6 月 13 日
The tostringInternalSlName() method does exactly that:
fixdt(1, 16, 0).tostringInternalSlName
ans = 'int16'
fixdt(0, 16, -5).tostringInternalSlName
ans = 'ufix16_E5'
fixdt(1, 5, 12).tostringInternalSlName
ans = 'sfix5_En12'
You can find it on embedded.numerictype, and it works on Simulink.NumericType (what fixdt() produces) too.
methods(embedded.numerictype)
Methods for class embedded.numerictype: SetBestFractionLength getChildren getParent isHierarchyReadonly isboolean propertyHyperlink SetBestPrecisionForMxArray getCommonProperties getPossibleProperties isHierarchySimulating isdouble qpointstr abs getContext getPreferredProperties isLibrary isequivalent range acceptDrop getContextMenu getPropAllowedValues isLinked isfixed rmiGetString areChildrenOrdered getCurrentDialogPrompts getPropDataType isMasked isfloat rmiIsSupported areDescendentsReadonly getDialogProxy getPropValue isMatrix ishalf rmiSetString canAcceptDrop getDialogSchema getPropertyActions isModelReference isnumerictype set canAcceptMouseDrop getDialogSource getSpecifiedSign isNumeric ispropequal setPropValue castLike getDisplayClass getWidth isObserverReference isscaleddouble showChildrenInListView closeEditor getDisplayIcon hasPropertyActions isOpaque isscaledtype sqrt ctranspose getDisplayLabel indicesToUnload isPointer isscalingbinarypoint supportsIncrementalLoading delete getDisplayToRealProperty isClass isReadonlyProperty isscalingslopebias tostring disp getDropOperations isComplex isScalar isscalingunspecified tostringInternalFixdt divide getForwardedObject isDragAllowed isSimd issingle tostringInternalSlName doDropOperation getFullName isDropAllowed isStructure isslopebiasscaled transpose eps getHierarchicalChildren isEditableProperty isTunableProperty isslopebiasscalingset upperbound evalDialogParams getInfoForIncrementalLoading isEnum isValidProperty lowerbound view exploreAction getInstanceProperties isHiddenObject isVoid lsb getActionIcon getMimeData isHierarchical isanyfloat openEditor getCheckableProperty getMimeType isHierarchyBuilding isbinarypointscalingset openvar

カテゴリ

Help Center および File ExchangeSimulink についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by