addElement

Класс: Simulink .SimulationData. Набор данных
Пакет: Simulink .SimulationData

Добавьте элемент в конец объекта набор данных

Синтаксис

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

Описание

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

dataset = addElement(dataset,element,name) добавляет элемент к Simulink.SimulationData.Dataset Данные set и дают элементу имя, которое вы задаете со 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.

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

Создание данных

Создайте данные в рабочей области. Данные моделирования Inspector поддерживают данные временных рядов во многих форматах. Этот пример создает данные с помощью 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 формат для группирования связанных данных сигнала в один объект. The 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

Откройте Данные моделирования Inspector

Чтобы просмотреть запуски, созданные вами в каждом разделе, откройте Данные моделирования Inspector путем ввода Simulink.sdi.view в MATLAB™ Командном окне.

Создайте запуск с использованием Simulink.sdi.Run Объект

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

Этот пример создает пустой запуск с использованием Simulink.sdi.Run.create function, дает запуску значимое имя и описание, а затем добавляет синус и косинус 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 функция для создания нового запуска в Данные моделирования Inspector 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);

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

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

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

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

Этот пример создает запуск с именем 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 функция для импорта данных в Данные моделирования Inspector из файла. Используйте 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