Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Crear matrices con la API de datos de C++MATLAB

Crear matrices

La API de datos de C++ permite que las aplicaciones que se ejecutan fuera del trabajo con datos a través de una interfaz neutral.MATLAB®MATLABMATLABMATLAB La API utiliza la semántica moderna de C++ y patrones de diseño y evita las copias de datos siempre que sea posible mediante la semántica de copia en escritura.MATLAB

El archivo de encabezado de la API de datos es.MATLABMatlabDataArray.hpp

La clase es la clase base para todos los tipos de matriz.matlab::data::Array Proporciona información general de la matriz, como el tipo y el tamaño. La clase es compatible con matrices unidimensionales y multidimensionales.Array La API de datos usa la indización de base cero.MATLAB

Para crear una matriz, primero cree una fábrica utilizando.matlab::data::ArrayFactory

matlab::data::ArrayFactory factory; 

Utilice la fábrica para crear una matriz de 2 por 2 de tipo.double Especifique los valores de la matriz en formato de columna-mayor para que coincida con el orden de la instrucción.MATLABA = [1 2; 3 4] Para inspeccionar la matriz, utilice las funciones de la clase.matlab::data::Array

#include "MatlabDataArray.hpp"  int main() {     using namespace matlab::data;     ArrayFactory factory;     Array A = factory.createArray<double>({ 2,2 },         { 1.0, 3.0, 2.0, 4.0 });      // Inspect array     ArrayType c = A.getType();     ArrayDimensions d = A.getDimensions();     size_t n = A.getNumberOfElements();      return 0; }

Este código equivale a las siguientes instrucciones.MATLAB

A = [1 2; 3 4]; c = class(A); d = size(A); n = numel(A);

La clase admite iteradores, que permiten usar bucles basados en el intervalo.matlab::data::TypedArrayfor En este ejemplo se crea una matriz de 1 por 6 a partir de 3 por 2.TypedArray

#include "MatlabDataArray.hpp"  int main() {     using namespace matlab::data;     ArrayFactory factory;      // Create a 3-by-2 TypedArray      TypedArray<double>  A = factory.createArray( {3,2},         {1.1, 2.2, 3.3, 4.4, 5.5, 6.6 });       // Assign values of A to the double array C        double C[6];     int i = 0;     for (auto e : A) {         C[i++] = e;     }      return 0; }

Opere en cada elemento de una matriz

Modifique cada elemento en un uso de una referencia al elemento.matlab::data::Array Este ejemplo multiplica cada elemento en el por un valor escalar.matlab::data::TypedArray

#include "MatlabDataArray.hpp"  int main() {     using namespace matlab::data;     ArrayFactory factory;      // Create a 3-by-2 TypedArray      TypedArray<double>  A = factory.createArray( {3,2},         {1.1, 2.2, 3.3, 4.4, 5.5, 6.6 });       // Define scalar multiplier     double multiplier(10.2);      // Multiple each element in A      for (auto& elem : A) {         elem *= multiplier;     }      return 0; }

Consulte también

|