addElement

Класс: Simulink.SimulationData.Dataset
Пакет: Simulink. SimulationData

Добавьте элемент в конец объекта Dataset

Синтаксис

dataset = addElement(dataset,element)
dataset = addElement(dataset,element,name)

Описание

dataset = addElement(dataset,element) добавляет элемент к Simulink.SimulationData.Dataset набор данных.

dataset = addElement(dataset,element,name) добавляет элемент к Simulink.SimulationData.Dataset набор данных и дает элементу имя, которое вы задаете с name аргумент. Если объект уже имеет имя, элемент вместо этого использует имя, которое вы задаете при помощи name аргумент.

Входные параметры

развернуть все

Набор данных, в который можно добавить элемент.

Элемент, чтобы добавить к набору данных в виде Simulink.SimulationData.Signal, Simulink.SimulationData.DataStoreMemory, или matlab.io.datastore.SimulationDatastore объект.

Назовите для элемента в виде вектора символов.

Выходные аргументы

развернуть все

Набор данных, в который вы добавляете элемент, возвратился как вектор символов. Новый элемент добавляется в конец набора данных.

Примеры

развернуть все

Создайте набор данных и добавьте три элемента в него.

time = 0.1*(0:100)';
ds = Simulink.SimulationData.Dataset;
element1 = Simulink.SimulationData.Signal;
element1.Name = 'A';
element1.Values = timeseries(sin(time),time);
ds = addElement(ds,element1);
element2 = Simulink.SimulationData.Signal;
element2.Name = 'B';
element2.Values = timeseries(2*sin(time),time);
ds = addElement(ds,element2);
element3 = Simulink.SimulationData.Signal;
element3.Name = 'C';
element3.Values = timeseries(3*sin(time),time);
ds = addElement(ds,element3);
ds
ds = 

Simulink.SimulationData.Dataset '' with 3 elements

                         Name  BlockPath 
                         ____  _________ 
    1  [1x1 Signal]      A     ''       
    2  [1x1 Signal]      B     ''       
    3  [1x1 Signal]      C     ''       

  - Use braces { } to access, modify, or add elements using index.

Можно программно импортировать данные в Инспектора Данных моделирования путем создания запуска из данных в базовом рабочем пространстве или файле. Этот пример создает данные в рабочей области и затем иллюстрирует несколько методов создания Инспектора Данных моделирования, запущенного содержащий данные.

Создайте данные

Создайте данные в рабочей области. Инспектор Данных моделирования поддерживает данные временных рядов во многих форматах. Этот пример создает данные с помощью timeseries и Simulink.SimulationData.Dataset форматы и сохраняют данные в MAT-файле.

Создайте сигнал синуса и сигнал косинуса, и храните данные для каждого сигнала в timeseries объект с описательным именем.

time = 0:0.2:20;

sine_vals = sin(2*pi/5*time);
sine_ts = timeseries(sine_vals,time);
sine_ts.Name = 'Sine, T=5';

cos_vals = cos(2*pi/8*time);
cos_ts = timeseries(cos_vals,time);
cos_ts.Name = 'Cosine, T=8';

Можно использовать Dataset формат связанным с группой данным сигнала вместе в отдельном объекте. Dataset формат является форматом по умолчанию для записанных данных и поддерживается для загрузки входных данных симуляции. Создайте Dataset объект, который содержит синусоиду timeseries данные.

sinusoids_ds = Simulink.SimulationData.Dataset;
sinusoids_ds = addElement(sinusoids_ds,cos_ts);
sinusoids_ds = addElement(sinusoids_ds,sine_ts);

Масштабируйте каждый сигнал фактором 2 и создайте Dataset объект содержать данные сигнала для результатов.

doubSine = 2*sine_ts;
doubCos = 2*cos_ts;

doubSinusoids_ds = Simulink.SimulationData.Dataset;
doubSinusoids_ds = addElement(doubSinusoids_ds,doubSine);
doubSinusoids_ds = addElement(doubSinusoids_ds,doubCos);

Наконец, сохраните timeseries данные к MAT-файлу.

save sinusoids.mat sine_ts cos_ts

Откройте инспектора данных моделирования

Откройте Инспектора Данных моделирования, таким образом, вы видите запуски, которые вы создаете в каждом разделе.

Simulink.sdi.view

Создайте запуск Используя Simulink.sdi.Run Объект

Можно импортировать данные в запуск в Инспекторе Данных моделирования путем создания пустого запуска и затем добавления данных в запуск из рабочей области или файла. В зависимости от вашей задачи можно использовать Simulink.sdi.Run.create функционируйте или Simulink.sdi.createRun функция, чтобы создать пустой запуск. Simulink.sdi.Run.create функция возвращает Simulink.sdi.Run объект для нового запуска и Simulink.sdi.createRun функция возвращает ID запуска для нового запуска.

Этот пример создает пустой запуск с помощью Simulink.sdi.Run.create функционируйте, дает запуску понятное имя и описание, и затем добавляет синус и косинус timeseries данные с помощью add функция.

sinusoidsRun = Simulink.sdi.Run.create;
sinusoidsRun.Name = 'Sinusoids';
sinusoidsRun.Description = 'Sine and cosine signals of different frequencies';

add(sinusoidsRun,'vars',sine_ts,cos_ts)

Этот пример использует Simulink.sdi.createRun функция, чтобы создать новый запуск в Инспекторе Данных моделирования под названием My Waves и затем использует Simulink.sdi.addToRun функция, чтобы добавить синус и косинус timeseries данные к запуску.

runID = Simulink.sdi.createRun('My Waves');
signalID = Simulink.sdi.addToRun(runID,'vars',sine_ts,cos_ts);

Создайте запуск из переменной рабочей области

Можно создать запуск из одной переменной в рабочей области. После создания запуска можно добавить дополнительные данные, или можно создать другой запуск, чтобы содержать другие данные. Переменной, которую вы используете, чтобы создать запуск, может быть timeseries объект с данными, которые соответствуют только одному сигналу, или это может быть Dataset объект, который содержит несколько сигналов.

Когда вы используете этот синтаксис, чтобы создать запуск из одной переменной рабочей области, запуск берет то же имя, как объект раньше создавал его.

runID = Simulink.sdi.createRun(sine_ts);

Simulink.sdi.createRun функция возвращает ID запуска для запуска, который это создает. Можно использовать Simulink.sdi.getRun функционируйте, чтобы получить доступ к Run объект для запуска.

sineRun = Simulink.sdi.getRun(runID);
sineRun.Name
ans = 
'Sine, T=5'

Создайте запуск из нескольких переменных рабочей области

Когда ваши данные существуют в нескольких переменных в вашей рабочей области, можно использовать Simulink.sdi.createRun функция с vars опция, чтобы импортировать данные от нескольких переменных в один запуск в Инспекторе Данных моделирования. Можно также использовать этот синтаксис, чтобы создать запуск для одной переменной, которая использует имя, которое вы задаете.

Этот пример создает запуск под названием My Sinusoids это содержит данные для синуса и косинуса timeseries объекты.

runID = Simulink.sdi.createRun('My Sinusoids','vars',sine_ts,cos_ts);

Создайте запуск и задайте исходные имена

Можно использовать namevalue опция Simulink.sdi.createRun функция, чтобы создать запуск и задать имена для сигналов в запуске. Этот синтаксис может быть особенно полезным, когда вы импортируете отдельные листовые сигналы из иерархических данных.

Этот пример создает запуск, содержащий данные для обоих Dataset объекты. Каждый Dataset объект содержит данные больше чем для одного сигнала, таким образом, импортированные данные о запуске имеют иерархию. Синтаксис значения имени в этом примере задает имя для иерархического узла, который соответствует каждому Dataset объект.

runID = Simulink.sdi.createRun('Waves','namevalue',{'Sinusoids',...
    'BigSinusoids'},{sinusoids_ds,doubSinusoids_ds});

Создайте запуск из данных в файле

Можно также использовать Simulink.sdi.createRun функция, чтобы импортировать данные в Инспектора Данных моделирования из файла. Используйте file опция, чтобы импортировать данные в simusoids.mat файл.

runID = Simulink.sdi.createRun('Wave Data','file','sinusoids.mat');

Альтернатива

Чтобы оптимизировать синтаксис индексации, можно использовать фигурные скобки ({}) добавить элемент в набор данных, вместо того, чтобы использовать addElement. Для индекса используйте скаляр, который больше числа элементов одним. Новый элемент становится последним элементом набора данных.

time = 0.1*(0:100)';
ds = Simulink.SimulationData.Dataset;
element1 = Simulink.SimulationData.Signal;
element1.Name = 'A';
element1.Values = timeseries(sin(time),time);
ds{1} = element1;
element2 = Simulink.SimulationData.Signal;
element2.Name = 'B';
element2.Values = timeseries(2*sin(time),time);
ds{2} = element2;
element3 = Simulink.SimulationData.Signal;
element3.Name = 'C';
element3.Values = timeseries(3*sin(time),time);
ds{3} = element3;

Введенный в R2011a