matlab::data::

Шаблонный класс C++, чтобы получить доступ к данным массива

Описание

Шаблонный класс TypedArray обеспечивает безопасные с точки зрения типов API, чтобы обработать все типы массива (кроме разреженных массивов) в массиве. Этот класс задает следующие типы итератора:

using iterator = TypedIterator<T>;
using const_iterator = TypedIterator<T const>;

Информация о классе

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

matlab::data

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

matlab::data::Array

Включение:

TypedArray.hpp

Параметры шаблона

T

Тип элемента упомянут.

Шаблонная обработка инстанцирований

double

float

int8_t

uint8_t

int16_t

uint16_t

int32_t

uint32_t

int64_t

uint64_t

char16_t

bool

std::complex<double>

std::complex<float>

std::complex<int8_t>

std::complex<uint8_t>

std::complex<int16_t>

std::complex<uint16_t>

std::complex<int32_t>

std::complex<uint32_t>

std::complex<int64_t>

std::complex<uint64_t>

matlab::data::Array
matlab::data::Struct
matlab::data::Enumeration

matlab::data::MATLABString

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

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

TypedArray(const TypedArray<T>& rhs)

TypedArray(const Array& rhs)

Описание

Создает копию разделяемых данных входа.

Параметры

const TypedArray<T>& rhs

Значение, которое будет скопировано.

const Array& rhs

Значение, заданное как объект matlab::data::Array.

Броски

InvalidArrayTypeException

Тип входа Array не совпадает с типом для TypedArray<T>.

Копирование оператора присваивания

TypedArray<T>& operator=(const TypedArray<T>& rhs)

TypedArray<T>& operator=(const Array& rhs)

Описание

Присваивает копию разделяемых данных входа к этому TypedArray<T>.

Параметры

const TypedArray<T>& rhs

Значение, которое будет скопировано.

const Array& rhs

Значение, заданное как объект matlab::data::Array.

Возвращается

TypedArray<T>&

Обновленный пример.

Броски

InvalidArrayTypeException

Тип входа Array не совпадает с типом для TypedArray<T>.

Перемещение конструктора

TypedArray(TypedArray<T>&& rhs)

TypedArray(Array&& rhs)

Описание

Содержимое перемещений входа к новому экземпляру.

Параметры

TypedArray<T>&& rhs

Значение, которое будет перемещено.

Array&& rhs

Значение, заданное как объект matlab::data::Array.

Броски

InvalidArrayTypeException

Тип входа не соответствует.

Перемещение оператора присваивания

TypedArray<T>& operator=(TypedArray<T>&& rhs)

TypedArray<T>& operator=(Array&& rhs)

Описание

Перемещает вход в этот объект TypedArray<T>.

Параметры

TypedArray<T>&& rhs

Значение, чтобы переместиться.

Возвращается

TypedArray<T>&

Обновленный пример.

Броски

InvalidArrayTypeException

Тип входа Array не совпадает с типом для TypedArray<T>.

Деструктор

virtual ~TypedArray()

Итераторы

Начальные итераторы

iterator begin()

const_iterator begin() const

const_iterator cbegin() const

Возвращается

iterator

Итератор к началу массива, заданного как TypedIterator<T>.

const_iterator

Итератор, заданный как TypedIterator<typename std::add_const<T>::type>.

Броски

'none'

Конечные итераторы

iterator end()

const_iterator end() const

const_iterator cend() const

Возвращается

iterator

Итератор к концу массива, заданного как TypedIterator<T>.

const_iterator

Итератор, заданный как TypedIterator<typename std::add_const<T>::type>.

Броски

'none'

Операторы индексирования

operator[]

ArrayElementTypedRef<T, std::is_const<T>::value> operator[](size_t idx)

ArrayElementTypedRef<T, true> operator[](size_t idx) const

Описание

Включает индексацию [] на TypedArray. Индексация на основе 0.

Параметры

size_t idx

Первый индекс массива.

Возвращается

ArrayElementTypedRef<T, std::is_const<T>::value>

Временный объект, содержащий индекс, задан. Если тип, T является const, то возвращаемое значение позволяет элементу массива быть полученным, но не измененным. В противном случае элемент может быть изменен или получен.

ArrayElementTypedRef<T, true>

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

Броски

'none'

Примеры

Предположим, что у вас есть массив ячеек c. Присвойте значение объекту Reference<Array> и вызовите функцию членства getType.

Reference<Array> r = c[0][0];
auto t = c[0][0].getType;

Функции членства

release

buffer_ptr_t<T> release()

Описание

Выпустите базовый буфер от Массива. Если Массив совместно используется, копия буфера сделана; в противном случае никакая копия не сделана. После того, как буфер выпущен, массив не содержит элементов.

Возвращается

buffer_ptr_t<T>

unique_ptr, содержащий указатель данных.

Броски

InvalidArrayTypeException

TypedArray не поддерживает выпуск буфера.

Примеры

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

Создайте массив, эквивалентный массиву MATLAB [1 2; 3 4], затем замените каждый элемент массива с одним значением.

#include "MatlabDataArray.hpp"

int main() {
	matlab::data::ArrayFactory factory;
	// Create an array equivalent to the MATLAB array [1 2; 3 4].
	matlab::data::TypedArray<double> D = factory.createArray<double>({ 2,2 }, { 1,3,2,4 });
	// Change the values.
	for (auto& elem : D) {
		elem = 5.5;
	}
	return 0;
}

Введенный в R2017b