1

我有一个应该用几个输入来评估的函数,我应该用 loglog 分析输出。

当我调用 feval("loglog", loglog_list) 我得到一个段错误:S

这是我的代码:

#include <iostream>
#include <cmath>

#include <octave-3.6.4/octave/oct.h>
#include <octave-3.6.4/octave/octave.h>
#include <octave-3.6.4/octave/parse.h>

double f(double x) { return std::exp(std::sin(x)); }

int main() {
    string_vector argv (2);
    argv(0) = "embedded";
    argv(1) = "-q";
    octave_main (2, argv.c_str_vec(), 1);

    octave_value_list loglog_arglist;

    for(int h = 0; h > -15; --h) loglog_arglist.append( octave_value( std::pow(10, h) ) );
    for(int h = 0; h > -15; --h) loglog_arglist.append( octave_value( f(std::pow(10, h)) ) );

    feval("loglog", loglog_arglist);
}

它应该是一个独立的应用程序,它应该像 octave 一样绘制一个图形

loglog (<x values>, <y values>)

我编译它: mkoctfile --link-stand-alone -o out program.cpp

4

0 回答 0