Передайте параметры Matlab программе C

Я написал простую программу на C, которая принимает аргумент командной строки и отображает этот аргумент:

#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[]){
if(argc<2){return 0;}
else{
    double x=atof(argv[1]);
    printf("%f\n",x);
    return 0;
    }
}

Теперь я хочу запустить эту программу из Matlab, используя функцию system():

>> x=3.14;

>> cmd=['/path/to/program/./test',x]

cmd =

/path/to/program/./test

>> [status,cmdout]=system(cmd)

status =

127


cmdout =

/bin/bash: /path/to/program/./test: No such file or directory

Это не работает, когда я пытаюсь это сделать. Я действительно не знаю, как это решить. Я использую Mac. Заранее спасибо.


person etotheipi    schedule 24.12.2013    source источник
comment
Это, кажется, не работает, не очень описательно. Можно немного подробнее, что именно происходит?   -  person Filipe Gonçalves    schedule 25.12.2013
comment
@FilipeGonçalves Я отредактирую вопрос.   -  person etotheipi    schedule 25.12.2013


Ответы (1)


пытаться:

x=3.14;
cmd=['/path/to/program/./test ',num2str(x)];
[status,cmdout]=system(cmd)

и '/path/to/program/' выглядит странно - действительно ли тест находится в /path/to/program/?

person Paweł Kordowski    schedule 24.12.2013
comment
попробуй без /path/to/program/ - person Paweł Kordowski; 25.12.2013
comment
Kordowski /path/to/program/ не настоящий, конечно, но теперь я понимаю, почему что-то пошло не так, я не видел пробела после ./test, так что теперь он работает, когда я добавляю пробел после ./test. Спасибо! - person etotheipi; 25.12.2013