How to get information on a Simulink.Signal data store?

10 ビュー (過去 30 日間)
Hadi Zyien
Hadi Zyien 2018 年 12 月 11 日
編集済み: Monika Jaskolka 2018 年 12 月 12 日
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.

採用された回答

Monika Jaskolka
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

その他の回答 (1 件)

Fangjun Jiang
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')

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by