Tout,
J'essaie de définir des préférences de plate-forme de manière dynamique en fonction de la saisie de l'utilisateur collectée à l'aide d'une interface utilisateur.
Essentiellement, l'utilisateur spécifie la version de Matlab installée sur sa machine et je l'utilise pour créer un chemin d'accès 32 bits et 64 bits vers la variable racine de Matlab sur la machine de l'utilisateur. Cependant, cela entraîne à plusieurs reprises une erreur:
"\ MATLAB \ R2018a \" inattendu. Peut-être qu'il manque un "," ou ")".
Essayer d'analyser les arguments de la fonction "MATLABROOT32".
Toute aide ou conseil est apprécié.
</CODE><CODE class=" language-jsl"></CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-218435" slang="en-US">Re: Définir les préférences de la plate-forme à l'aide d'une variable</LINGO-SUB><LINGO-BODY id="lingo-body-218435" slang="en-US"><P>Grâce à <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/4881" target="_blank"> @gblatz </A> , les oeuvres suivantes: </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;
Le problème que vous avez rencontré avec les chaînes citées est l’une des raisons pour lesquelles je préfère généralement Eval (Substitute ()) ou Eval (EvalExpr ())
Eval(
Substitute(
Expr(
Platform Preferences(
PathVar(
MATLABROOT32( "DV_ML32" ),
MATLABROOT( "DV_ML64" )
)
)
),
"DV_ML32", matlab_32bit_path,
"DV_ML64", matlab_64bit_path
)
);