Main Content

matlab::engine::WorkspaceType

MATLAB ワークスペースのタイプ

説明

matlab::engine::WorkspaceType enum クラスは、変数の受け渡しをする MATLAB® ワークスペースを指定します。

BASEMATLAB ベース ワークスペース (コマンド ライン、および関数以外のスクリプト) のスコープ内にある変数
GLOBALMATLAB グローバル ワークスペース (コマンド ライン、関数、およびスクリプト) のスコープ内にある変数

MATLAB はワークスペース別に変数をスコープに収めます。ベース ワークスペースのスコープに含まれる変数は、引数として関数に渡さなければなりません。グローバル ワークスペースのスコープに含まれる変数は、特定の変数名をグローバルとして定義するすべての関数によってアクセスできます。

クラスの詳細

名前空間:

matlab::engine
インクルードMatlabEngine.hpp

ここでの例では、

  • 共有 MATLAB セッションに接続します。

  • double 型の数値を含む matlab::data::Array を作成します。

  • 配列を MATLAB グローバル ワークスペースに入れます。

#include "MatlabDataArray.hpp"
#include "MatlabEngine.hpp"
#include <iostream>

static void putGlobalVar() {

    using namespace matlab::engine;

    // Connect to named shared MATLAB session started as:
    // matlab -r "matlab.engine.shareEngine('myMatlabEngine')"
    String session(u"myMatlabEngine");
    std::unique_ptr<MATLABEngine> matlabPtr = connectMATLAB(session);

    // Create matlab data array factory
    matlab::data::ArrayFactory factory;

    // Create data variable
    matlab::data::Array data = factory.createArray<double>
        ({ 1, 5 }, { 4.0, 11.0, 4.7, 36.2, 72.3 });

    // Put data variable in MATLAB global workspace
    matlabPtr->setVariable(u"data", data, WorkspaceType::GLOBAL);
}

バージョン履歴

R2017b で導入