从Matlab执行C程序

时间:2018-09-07 09:06:32

标签: c matlab

我需要通过Matlab执行C程序,并且为此使用了system()函数。 但是,C程序计算一个浮点数,并将其作为我保存在Matlab变量中的字符串返回。然后我 通过str2double()函数将其转换为double,但这并不总是有效。有时 即使我从C程序获得正确的字符串,str2double()也会返回NaN。 我附上我在Matlab中编写的代码( v a 是先前计算出的长度相同的向量):

for i=1:length(v)
    fun = './compute_power';
    arg1 = ' 0';
    arg2 = num2str(v(i));
    arg3 = num2str(a(i));
    arg4 = ' 250';

    execution_path = strcat(fun, arg1, {' '}, arg2, {' '}, arg3, arg4);
    execution_path = char(execution_path);

    [status, result] = system(execution_path);

    power(i) = str2double(result);
end

我无法弄清楚该错误,因为有时它会很好地工作,有时却不能。 是否有另一种无需使用str2double()即可获得相同结果的方法?

0 个答案:

没有答案