首页 > 解决方案 > 从 Matlab 执行 C 程序

问题描述

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

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()

标签: cmatlab

解决方案


推荐阅读