matlab:Error: Function definitions are not permitted in this context.什么意思?

function t = simpson(n)
%Simpson求积公式求【0,1】上f(x)=x/(4+x^2)积分,以区间数n为自变量

f=@(x)x/(4+x^2);

g=@(x)(f(x)+4*f(x-1/(2*n))+f(x-1/n))/6;
s=@(x)(g(x)+g(x-1/n));
for i=(1/n):(1/n):1
s(i);
end
t=s(1);

end

在matlab里输入上述程序时出现这样的报错,这是为什么啊?matlab新手,知道得很少,希望解释详细一点,说明一下该怎么改

你在新建一个函数文件,具体过程如下:
1.你打开Matlab程序,左上角File---New----Function;
2.将你看见的一些代码删了,然后将你上面的代码复制上去;
3.文件名为simpson;
4.然后在matlab里面输入simpson(20);括号里面的数字看你的需要填写
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-15
从上面程序看,如果这是一个完整程序,就不会有上面的提示。有上面的提示,很可能这只是一个大程序的一部分。一般情况下,只有在函数文件下才能定义子函数,在脚本文件下是不允许定义函数的。因此,这可能是在一个脚本文件内定义一个函数,就出现了错误提示。可把这段程序分出来,单独作一个文件保存。
第2个回答  2018-03-30

新建一个函数文件

    在新建一个函数文件,具体过程如下:

(1)你打开Matlab程序,左上角File---New----Function?

(2)将你看见的一些代码删了,然后将你上面的代码复制上去。

(3)文件名为simpson。

(4)然后在matlab里面输入simpson(20);括号里面的数字看你的需要填写。

    你的命令是要自己定义一个f2函数,不能直接在命令窗口和直接新建的m文件(脚本文件script)中运行,你要将这个函数命令保存为一M函数文件。

    %适应度函数(fitness.m),function result=fitness(x,D),sum=0,for,i=1:D, sum=sum+x(i)^2,end,result=sum,先将函数保存为名为fitness的m文件,然后才可以运行主函数源程序。

本回答被网友采纳
第3个回答  2015-06-15
从上面程序看,如果这是一个完整程序,就不会有上面的提示。有上面的提示,很可能这只是一个大程序的一部分。一般情况下,只有在函数文件下才能定义子函数,在脚本文件下是不允许定义函数的。因此,这可能是在一个脚本文件内定义一个函数,就出现了错误提示。可把这段程序分出来,单独作一个文件保存。
第4个回答  2018-03-30

新建一个函数文件

    在新建一个函数文件,具体过程如下:

(1)你打开Matlab程序,左上角File---New----Function?

(2)将你看见的一些代码删了,然后将你上面的代码复制上去。

(3)文件名为simpson。

(4)然后在matlab里面输入simpson(20);括号里面的数字看你的需要填写。

    你的命令是要自己定义一个f2函数,不能直接在命令窗口和直接新建的m文件(脚本文件script)中运行,你要将这个函数命令保存为一M函数文件。

    %适应度函数(fitness.m),function result=fitness(x,D),sum=0,for,i=1:D, sum=sum+x(i)^2,end,result=sum,先将函数保存为名为fitness的m文件,然后才可以运行主函数源程序。

本回答被网友采纳
相似回答