変数を使用してプラットフォーム設定を設定するすべて、
私は、UIを使用して収集したユーザー入力に基づいてプラットフォームの設定を動的に設定しようとしています。
基本的に、ユーザーは自分のマシンにインストールされているMatlabのバージョンを指定し、私はそれを使ってユーザーのマシンにMatlabのルート変数への32ビットと64ビットのパスを作成します。 しかし、これは繰り返しエラーになります。
予期しない "\ MATLAB \ R2018a \"です。おそらく、"、"、または ")"がありません。
関数 "MATLABROOT32"の引数を解析しようとしています。
任意の助けやアドバイスは大歓迎です。
</CODE><CODE class=" language-jsl"></CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-218435" slang="en-US">変数を使用してプラットフォーム設定を設定する</LINGO-SUB><LINGO-BODY id="lingo-body-218435" slang="en-US"><P>ありがとう<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/4881" target="_blank"> @gblatz </A> 、次の作品: </P><P> </P><PRE><CODE class=" language-jsl">Eval(
Parse(
Eval Insert(
" Platform Preferences( PathVar( MATLABROOT32( \!"^matlab_32bit_path^ \!" ), MATLABROOT( \!"^matlab_64bit_path^\!" ) ) );"
)
)
);user_matlab_ver = '2018a' ; // for example <BR />matlab_32bit_path = "C:\Program Files (x86)\MATLAB\R2018a\";
matlab_64bit_path = "C:\Program Files\MATLAB\R2018a\";
Eval( Parse( Eval Insert("\[ Platform Preferences( PathVar( MATLABROOT32( ^matlab_32bit_path^ ), MATLABROOT( ^matlab_64bit_path^ ) ) );]\" ) ) );
ConnectToMatlab = Expr(
matlab_conn = MATLAB Connect();
matlab_conn_flag = matlab_conn << Is Connected;
);
ConnectToMatlab;
変数を使用してプラットフォーム設定を設定する引用符で囲まれた文字列に関してあなたが抱えていた問題は、私がEval(Substitute())またはEval(EvalExpr())を好む理由の1つです。
Eval(
Substitute(
Expr(
Platform Preferences(
PathVar(
MATLABROOT32( "DV_ML32" ),
MATLABROOT( "DV_ML64" )
)
)
),
"DV_ML32", matlab_32bit_path,
"DV_ML64", matlab_64bit_path
)
);