Hey donc j'ai une commande bash qui résonne une chaîne basée sur la lecture de certains fichiers. Dites pour la simplicité, il est comme çaAppel de script externe dans matlab et capture de sortie
for line in `cat file`
do
if [ "$line" == "IwantThisLine" ]
then
echo "True"
fi
done
Et je l'ai enregistré en tant que son propre script individuel. Son appelé readRef.sh. Alors maintenant je veux l'appeler dans matlab et stocker tout ce qu'il sort dans une variable! Je ne suis pas tout à fait sûr sur la façon de faire cela, je semble obtenir une erreur lors de l'utilisation de evalc() sur un système(). Mais ça pourrait être juste que je mette des citations en l'air.
J'ai essayé quelque chose comme
evalc(system(['./readRef.sh ' bamfile']))
Le « bamfile » est une variable qui est juste une chaîne sur le chemin d'un bamfile.
Je reçois cette erreur.
>> tes = evalc(system(['./readRef.sh ' smplBamFile]))
hg18
??? Undefined function or method 'evalc' for input arguments of type 'double'.
Coïncidence, il ne crachait « hg18 » qui est ce que je veux mettre à la variable Matlab.
Eh bien, pourriez-vous fournir les commandes 'evalc' /' system' que vous avez essayé d'exécuter le script et le message d'erreur qui l'accompagne? (En aparté - le script lui-même fonctionne-t-il lorsque vous l'exécutez depuis bash (ie 'sh./ReadRef.sh'?) Avez-vous défini le bit exécutable?) –
Il semblerait que' smplBamFile' ne soit pas une chaîne de caractères - pourrait vous faites 'class (['./ readRef.sh' smplBamFile])'? –
il est dit 'char'. –