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

3 ビュー (過去 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')

カテゴリ

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

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by