附加图片有我正在处理的问题。以下是我的m文件中的代码和我在命令窗口中获得的输出。 M-File代码:
function p = PolyEval (n, a, y, x)
for i = n+1:2
p = a(i - 1) + (x + y(i - 1))*a(i);
a(i-1) = p;
end
fprintf('%6.0f %18.8f \n', p);
end
命令窗口代码和输出:
PolyEval(5, [-1, 3.3, 0, -2.2, 5, -1.6], [-1, 1, -1, 1, -1], 1.53)
未定义的函数或变量" p"。
PolyEval中的错误(第6行) fprintf('%6.0f%18.8f \ n',p);
关于代码和问题,n是控制两个数组大小的变量,a是由n + 1个变量组成的1-D数组,y是由n个变量组成的1-D数组, x是计算中使用的变量。
我在一张纸上测试了代码算法,它应该返回6.65的值,但在这种情况下它会给我上面的错误。
你们能帮助我理解为什么我会收到错误吗?请查看由我试图编写此matlab代码的问题和等式组成的图像。
答案 0 :(得分:0)
循环for i = n+1:2
是一个从6到2的循环,使用+1的步骤(这是默认值)。只要开始高于结束值,就不会执行循环。你想要for i = n+1:-1:2
。