输出太多的matlab中的问题

Ben*_*sen 0 matlab

我写一个Matlab程序对辛普森的规则,当程序到达我不断收到有关许多输出错误left_simpson = Simpson(a,c,(e1)/2,level, level_max);有什么不对settinf left_simpsonSimpson(a,c,(e1)/2,level, level_max);

function Simpson(a,b,e1,level, level_max)


level = level + 1;

h = b - a;

c = (a+b)/2;

one_simpson = h*(f(a) + 4*f(c) + f(b))/6;

d = (a+c)/2;

e = (c+b)/2;

two_simpson = h*(f(a) + 4*f(d) + 2*f(c) + 4*f(e))/2;

if level >= level_max

    disp('h')

    simpson_result = two_simpson;

    disp('maximum levels reached')

    disp(simpson_result);

    if abs(two_simpson - one_simpson) < 15*e1

        simpson_result = two_simpson + (two_simpson - one_simpson)/15;

    else 
        left_simpson = Simpson(a,c,(e1)/2,level, level_max);

        right_simpson = Simpson(c,b,(e1)/2,level, level_max);

        simpson_result = left_simpson + right_simpson;

    end

end
Run Code Online (Sandbox Code Playgroud)

Hig*_*ark 5

您的函数语句(代码中的第一行)不会声明Simpson返回的内容.我不知道Matlab对这样的声明做了什么.我认为你应该重新编写Simpson来显式返回一个值或值.看一下Matlab文档,了解如何做到这一点.

一旦你宣布Simpson返回的内容,那么你可能能够避免"太多输出"问题.

  • 如果没有使用输出参数声明函数,它将不会输出任何内容(除非它打开数字,打印到命令行,保存数据或写入句柄对象) (2认同)