Предайте параметрите на 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