2012-04-05 13 views
6

devo MATLAB file di matlab_param.mQual è il modo più vicino per passare argomenti stringa da script bash a file matlab?

function matlab_param(param1, param2) 

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

E voglio avere script bash bash_param.sh che sembrano

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

voglio correre questo bashscirpt

./bash_param.sh hello world 

e verrà stampato

hello 
world 
param1 : hello 
param2 : world 

Ho cercato su google per ore e non sono riuscito a trovare alcuna soluzione esatta per questo. Quello il più vicino ho ottenuto finora è

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

che ho bisogno di hardcode tutti i parametri.

risposta

5

Hai provato:

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

Mi dispiace che non l'ho spiegato chiaramente. Ora aggiungo ulteriori spiegazioni. Se provo il modo in cui mi suggerisci, non stamperà quei $ 1 e $ 2 –

+0

Ok, ho modificato. – Oli

2

Se si vuole essere in grado di passare argomenti alla funzione di MATLAB mi consiglia per creare un semplice script di shell:

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

Quindi è possibile eseguire in unix:

$ sh test_param.sh hello world 

Non è sicuro, anche se come evitare l'uscita di intestazione MATLAB e se verrà passato al tubo.

Problemi correlati