我需要通过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()
即可获得相同结果的方法?