2012-04-05 7 views
6

que tienen MATLAB archivo matlab_param.m¿Cuál es la forma más cercana de pasar argumentos de cadena desde el script bash al archivo matlab?

function matlab_param(param1, param2) 

disp(sprintf('param1 : %s', param1)); 
disp(sprintf('param2 : %s', param2)); 

Y quiero tener bash_param.sh escritura del golpe que se parecen a

#!/bin/bash 
echo $1 
echo $2 
./matlab_param.m $1 $2 

quiero ejecutar este bashscirpt

./bash_param.sh hello world 

y imprimirá

hello 
world 
param1 : hello 
param2 : world 

Busqué en Google durante horas y no pude encontrar ninguna solución exacta para esto. El más cercano que tengo hasta ahora es

matlab -nodesktop -nosplash -nodisplay -r "try, run ('./test_param.m'); end; quit" 

que necesito codificar todos los parámetros.

Respuesta

5

¿Usted intentó:

#!/bin/bash 
echo $1 
echo $2 
matlab -nodesktop -nosplash -nodisplay -r "try, test_param('$1','$2'); end; quit" 
+0

Lamento que no lo haya explicado claramente. Ahora agrego más explicaciones. Si trato de la manera que sugieres, no se imprimirán esos $ 1 y $ 2 –

+0

Ok, he editado. – Oli

2

Si usted quiere ser capaz de pasar argumentos a la función de MATLAB que recomendaría a crear un sencillo script de shell:

matlab -nodisplay -r "try, test_param('$1','$2'); end; exit" 

continuación, puede ejecutar en UNIX:

$ sh test_param.sh hello world 

No estoy seguro, aunque la forma de evitar la salida de cabecera MATLAB y si se pasa al tubo.

Cuestiones relacionadas