C ++から马铃薯草へへの列挙型の引き渡し
马铃薯草®列挙型メンバーをを力としてとするmatlab关键词を呼び出すは,列挙型メンバーをMatlab :: Data :: Enumarray
として定义します。列挙型配列を作物成するに,Matlab :: Data :: ArrayFactory
を使使し。Matlab :: Data :: Enumarray
には,MATLABクラス名と1つ以上の列挙型メンバーが含まれています。Matlabengine :: SetVariable.
をを使し,配列配列を数としてmatlabワークスペースに渡すこともますます。
メモ
Matlab :: Data :: Enumarray
をmatlabに渡すには,matlabパス上游名称付きmatlabクラスが现处于してなけれなければなりんん。
次のtextstring.
をmatlabでで定义するととしししクラスは,textcolor.
という名前の特定の列挙型クラスであるプロパティを定义します。textstring.
クラスコンストラクターは,次の2つの入力引数を取ります。
str
- 1行n列のの配列颜色
-textcolor.
クラスの列挙型メンバー
Classdef.textstring.特性str(1,:) char颜色textcolor.结尾方法功能obj = textstring(str,颜色)如果nargin == 2 obj.str = str;obj.color =颜色;结尾结尾结尾结尾
以下に,matlabのtextcolor.
列挙列挙型クラスの定义方法をを示し
Classdef.textcolor.枚举红色绿色结尾结尾
このmatlabステートメントステートメント,文标ベクトルと列挙型メンバークラスコンストラクターに渡してtextstring.
オブジェクトを作用成し。
t = textstring('任何文本字符串',textcolor.blue);
次次のサンプルコード,matlabのtextstring.
オブジェクトを作成してプロパティ値を表示します。textstring.
オブジェクトを作用成するに,次を行ます。
MATLAB文库ベクトルベクトルベクトルのの
Matlab :: data :: chararray
を定义する。马铃薯草
textcolor.blue.
列挙型分数のためのMatlab :: Data :: Enumarray
を定义する。引数ベクトルを
Matlabengine :: Feval.
に渡す。Matlabengine :: GetProperty.
を使用してプロパティ値を取得して値を表示する。
メモ
この例でで,ここで说明されいるmatlabのtextstring.
クラスとtextcolor.
#include“matlabdataArray.hpp”#include“matlabengine.hpp”#includevoid enumarray(){使用命名空间matlab ::引擎;//连接到名为Shared MATLAB会话开始为:// matlab -r“matlab.egine.shareengine('mymatlabengine')”字符串会话(U“mymatlabengine”);std :: unique_ptr matlabptr = connectmatlab(会话);//创建Matlab数据阵列Factory Matlab :: Data :: ArrayFactory Factory;//创建枚举阵列自动enumcolor = factory.createEnumArray({1,1},“TextColor”,{“Blue”});//创建参数矢量std :: vector args({factore.createcharArray(“任何文本字符串”),enumcolor});//调用matlab textstring创建对象matlab :: data :: array t = matlabptr-> feval(u“textstring”,args);//获取str属性matlab :: data :: chararray c = matlabptr-> getProperty(t,u“str”)的值;std :: cout <<“str属性值:”<< c.toascii()<< std :: endl;//获取Color属性Matlab :: Data :: Enumarray Col = MatlabPtr-> GetProperty(T,U“颜色”)的值; std::cout << "Color property class: " << col.getClassName() << std::endl; std::cout << "Color property value: " << std::string(col[0]) << std::endl; }
以下にプログラム出力をますます。
str属性值:任何文本字符串颜色属性类:TextColor Color属性值:Blue
C ++エンジンエンジンプログラムを设定およびビルド方法ののについては,C ++エンジンエンジンプログラムのを参照してください。
参考
Matlab :: Data :: ArrayFactory
|Matlab :: Engine :: ConnectMatlab
|Matlab :: Engine :: Matlabengine