How to get information on a Simulink.Signal data store?
조회 수: 4 (최근 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.

댓글 수: 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!