How to change data dictionary entry through matlab script without altering the storage class?
48 views (last 30 days)
Show older comments
Hi,
I am trying to change multiple entries in the data dictionary for a particular model. Instead of copy pasting every time, I would like to create a script for doing this automatically everytime. This is the script I am using right now:
BPPR_sldd = Simulink.data.dictionary.open('BPPR_ac.sldd');
dDataSectObj = getSection(BPPR_sldd,'Design Data');
a = getEntry(dDataSectObj,'KtBPPR_I_I2chr');
setValue(a,single(cal_I2c));
The issue here is that when I do this the parameter changes its storage class and becomes a generic constant when setValue is used. See figure for reference:
0 Comments
Answers (1)
Donn Shull
on 23 Jan 2022
Do not cast the DataType during the assignment.for example:
>> x = Simulink.Parameter
x =
Parameter with properties:
Value: []
CoderInfo: [1×1 Simulink.CoderInfo]
Description: ''
DataType: 'auto'
Min: []
Max: []
Unit: ''
Complexity: 'real'
Dimensions: [0 0]
The DataType is 'auto'. Assign the value:
>> x.Value = 12
x =
Parameter with properties:
Value: 12
CoderInfo: [1×1 Simulink.CoderInfo]
Description: ''
DataType: 'auto'
Min: []
Max: []
Unit: ''
Complexity: 'real'
Dimensions: [1 1]
The DataType is unchanged. Assign the value using a cast:
>> x.Value = uint16(12)
x =
Parameter with properties:
Value: 12
CoderInfo: [1×1 Simulink.CoderInfo]
Description: ''
DataType: 'uint16'
Min: []
Max: []
Unit: ''
Complexity: 'real'
Dimensions: [1 1]
The DataType changes to 'uint16'.
1 Comment
Shashwat Singh
on 8 Aug 2023
Edited: Shashwat Singh
on 8 Aug 2023
How to alter the Storage class of 'Simulink.Parameter' programatically???
See Also
Categories
Find more on Manage Design Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!