matlab - 使用 MATLAB 调用 Octave 模型

标签 matlab octave

我正在 MATLAB 中运行一个优化代码,它需要一个与 Octave 兼容的模型的适应度值(我不能使用 MATLAB 来解决这个模型。因此 Octave。)。为此,我在 MATLAB 中编写了一个适应度函数,如下所示

fid = fopen('parameter.txt','w');
for i=1:length(x)
%    fprintf(fid,'%e \n',x(i));
    fprintf(fid,'%12.5f \n',x(i));
end
fclose(fid);

system('./dswrap');

% get the objective fitness value:
fid = fopen('fitness.txt','r');
y=fscanf(fid,'%f',[1]);
fclose(fid);
  1. x 是进入 parameter.txt 的模型的输入向量
  2. fitness.txt 是 ./dswrap 的输出

dswrap 是用 C 编写的代码,如下所示

int main()
    {
        FILE*fp,*fp_r;
        fp=popen("octave","w");
        fprintf(fp,"ObjFuS");
        pclose(fp);
    }

这会调用 Octave,然后调用 ObjFus,它从 parameter.txt 获取输入并输出到 fitness.txt。我面临的问题是 fitness.txt 没有生成,经过一些调整后我发现一个问题是

sh: octave: command not found

我可以从我的终端调用 Octave。所以我不确定为什么会出现上述错误? 会不会是我做错了其他事情。我需要有关正确生成 fitness.txt 的帮助。谢谢。

最佳答案

您的系统似乎需要更多信息来启动它,而不仅仅是程序名称。从不同的语言调用它不会有帮助,但幸运的是指定路径会。

对我来说,以下调用失败了:

!textpad % Equivalent to system('textpad')

但是这个有效:

!"C:\Program Files (x86)\TextPad 6\TextPad.exe"

关于matlab - 使用 MATLAB 调用 Octave 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895528/

相关文章:

matlab - 使用 MATLAB 进行滚动窗口求平均值

Matlab:使用颜色图将一维数组转换为 RGB 三元组

python - MATLAB/Octave corr 和 Python numpy.correlate 有什么区别?

matlab - 轮廓函数中的 "VN"可选参数代表什么?

python - Shiny 的 Python 3D 表面图的 Phong 着色

arrays - 在 Matlab 问题中使用 FFT 进行二维反卷积

matlab - 最近均值分类器的距离计算器

matlab - GNU Octave Matlab : Plot tick labeling

octave - 无法在 Octave 中安装包 optim