exponenta event banner

matlab:: данные:: StructArray

Класс C++ для доступа к массивам структур MATLAB

Описание

Использовать StructArray объекты для работы с массивами структур MATLAB ®. Чтобы получить доступ к полю для одного элемента массива, используйте имя поля. Создание StructArray объект, вызов createStructArray в ArrayFactory класс.

Сведения о классе

Пространство имен:

matlab::data

Базовый класс:

TypedArray<Struct>

Включить:

StructArray.hpp

Конструкторы

Копировать конструкторы

StructArray(const StructArray& rhs)

StructArray(const Array& rhs)

Описание

Создание общей копии данных StructArray объект.

Параметры

const StructArray& rhs

Копируемое значение.

const Array& rhs

Значение указано как ArrayType::STRUCT объект.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода Array не является ArrayType::STRUCT.

Копирование операторов назначения

StructArray& operator=(const StructArray& rhs)

StructArray& operator=(const Array& rhs)

Описание

Назначает копию общих данных StructArray объект.

Параметры

const StructArray& rhs

Копируемое значение.

const Array& rhs

Значение указано как ArrayType::STRUCT объект.

Прибыль

StructArray&

Обновленный экземпляр.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода Array не является ArrayType::STRUCT.

Переместить конструкторы

StructArray(StructArray&& rhs)

StructArray(Array&& rhs)

Описание

Перемещает содержимое StructArray объект новому экземпляру.

Параметры

StructArray&& rhs

Значение для перемещения.

Array&& rhs

Значение указано как ArrayType::STRUCT объект.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода Array не является ArrayType::STRUCT.

Переместить операторов назначения

StructArray& operator=(StructArray&& rhs)

Описание

Назначает входные данные для этого StructArray объект.

Параметры

StructArray&& rhs

Значение для перемещения.

Прибыль

StructArray&

Обновленный экземпляр.

Броски

Ничего

Деструктор

~StructArray()

Описание

Свободная память для StructArray объект.

Функции-члены

getFieldNames

Range<ForwardIterator, MatlabFieldIdentifier const> getFieldNames() const
Прибыль

Range<ForwardIterator, MatlabFieldIdentifier const>

Содержит begin и end итераторы, разрешающие доступ ко всем полям в StructArray объект.

Броски

Ничего

getNumberOfFields

size_t getNumberOfFields() const
Прибыль

size_t

Количество полей.

Броски

Ничего

Примеры

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

Предположим, что имеется следующая структура MATLAB.

s = struct('loc', {'east', 'west'}, 'data', {[1, 2, 3], [4., 5., 6., 7., 8.]})

Создание переменной, содержащей данные для loc east.

val = s(1).data

Эти переменные создаются следующим кодом C++.

#include "MatlabDataArray.hpp"

int main() {
	using namespace matlab::data;
	ArrayFactory factory;

	StructArray S = factory.createStructArray({ 1,2 }, { "loc", "data" });
	S[0]["loc"] = factory.createCharArray("east");
	S[0]["data"] = factory.createArray<uint8_t>({ 1, 3 }, { 1, 2, 3 });
	S[1]["loc"] = factory.createCharArray("west");
	S[1]["data"] = factory.createArray<double>({ 1, 5 }, { 4., 5., 6., 7., 8. });

	Reference<Array> val = S[0]["data"];
	return 0;
}
Представлен в R2017b