How to get information on a Simulink.Signal data store?
1 次查看(过去 30 天)
显示 更早的评论
If I create a data store in the base workspace like so:
DataStore = Simulink.Signal;
DataStore.Description = 'Stores data for a variable.';
DataStore.DataType = 'double';
DataStore.Complexity = 'real';
DataStore.Dimensions = 1;
DataStore.SamplingMode='Sample based';
DataStore.SampleTime = 0.1;
how can I later get this data via the Command Window, specifically the DataType? I can access it by double-clicking the workspace variable (shown below), but I need to get this data programmatically for a script.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/198819/image.png)
0 个评论
采纳的回答
Monika Jaskolka
2018-12-12
编辑:Monika Jaskolka
2018-12-12
A function will have its own workspace, so you will have to get the Simulink.Signal object from the base workspace first:
% Get all Simulink.Signal objects
workspaceData = evalin('base', 'whos');
idx = ismember({workspaceData.class}, 'Simulink.Signal');
allDs = workspaceData(idx);
% Find the object that is named 'DataStore'
match = strcmp({allDs.name}, 'DataStore');
ds = allDs(match);
% Get the Signal object
ds = evalin('base', ds.name);
% Get the type
type = ds.DataType;
type = get(ds, 'DataType'); % Alternative command
0 个评论
更多回答(1 个)
Fangjun Jiang
2018-12-12
Just like you did in the script, as long as you know the Simulink.Signal object name.
To get the data type: DataStore.DataType or get(DataStore,'DataType')
To set the data type: DataStore.DataType='single' or set(DataStore,'DataType','single')
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!