MATLABE此上下文中不允许函数定义,是什么错误啊?

1. function newton_divided_difference( f, min_x, max_x, n ) 2. %UNTITLED 使用牛顿差商法插值 3. % f为原函数,min_x max_x定义了区间,n为多项式次数 4. 5. %步骤1:求x,f,f[1],f[2]...f[n] 6. x = min_x : (max_x-min_x)/n : max_x; 7. for i = 1:1:n+1 8. y(i) = f(x(i)); 9. end 10. a=[x',y']; 11. for i = 1:1:n 12. for j = 1:1:(n-i+1) 13. a(j,i+2) = (a(j+1,i+1)-a(j,i+1))/(a(j+i,1)-a(j,1)); 14. end 15. end 16. 17. %步骤2:画原始函数图像 18. figure(1); 19. STEP = 0.001; 20. x = min_x : STEP : max_x; 21. for i = 1:1:((max_x-min_x)/STEP+1) 22. y_1(i) = f(x(i)); 23. end 24. plot(x,y_1,'r') 25. 26. %步骤3:画插值函数图像 27. hold on 28. for i = 1:1:((max_x-min_x)/STEP+1) 29. y_2(i) = a(1,n+2); 30. for j = n:-1:1 31. y_2(i) = y_2(i) * (x(i) - a(j,1)) + a(1,j+1); 32. end 33. end 34. plot(x,y_2,'b') 35. hold off 36. 37. %步骤4:画误差图像 38. figure(2); 39. y_error = y_1 - y_2; 40. plot(x,y_error) 41. end

第1个回答  2018-12-27
MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因。 1、你可能写了个脚本程序文件,其中定义了子函数,在运行时就弹出了这个提示。一般情况下,在函数文件中才能定义子函数,在脚本文件中不允许定义子函数。这是个基本的要求。 2、一个函数,包括定义和调用两个过程。定义函数时的参数表称为形式参数,调用函数时的参数称为实际参数。形式参数只能是变量,不能是表达式或具体的数。 3、第一种可能 在命令窗口定义了函数,新建一个fungry1.m文件 把fungry1函数放到这里定义。第二种可能 调用fungry1函数格式不对,改为GM1=fungry1。函数的文件里面可以嵌套定义函数。你把AHPInit1那个函数代码拿出来单独写一个AHPInit1.m文件,并和Untitled2.m保存在同一目录下。本回答被网友采纳
相似回答