Todos,
Estoy tratando de establecer las preferencias de la plataforma de forma dinámica en función de la entrada de usuario recopilada mediante una interfaz de usuario.
Esencialmente, el usuario especifica qué versión de Matlab está instalada en su máquina y la estoy utilizando para construir una ruta de 32 bits y una de 64 bits a la variable raíz para Matlab en la máquina de los usuarios. Sin embargo, esto resulta repetidamente en un error:
Inesperado "\ MATLAB \ R2018a \". Quizás falte un "," o ")".
Intentando analizar los argumentos de la función "MATLABROOT32".
Cualquier ayuda o consejo es apreciado.
</CODE><CODE class=" language-jsl"></CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-218435" slang="en-US">Re: Establecer las preferencias de plataforma usando una variable</LINGO-SUB><LINGO-BODY id="lingo-body-218435" slang="en-US"><P>Gracias a <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/4881" target="_blank"> @gblatz </A> , las siguientes obras: </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;
El problema que tuvo con las cadenas citadas es una de las razones por las que normalmente prefiero Eval (Substitute ()) o Eval (EvalExpr ())
Eval(
Substitute(
Expr(
Platform Preferences(
PathVar(
MATLABROOT32( "DV_ML32" ),
MATLABROOT( "DV_ML64" )
)
)
),
"DV_ML32", matlab_32bit_path,
"DV_ML64", matlab_64bit_path
)
);