gpt4 book ai didi

matlab - 使用 MATLAB 调用 Octave 模型

转载 作者:行者123 更新时间:2023-12-02 04:56:17 25 4
gpt4 key购买 nike

我正在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com