Arrays Matlab输出中未定义的变量或函数错误
附件中的图片有我正在处理的问题。下面是我的m文件中的代码和我在命令窗口中得到的输出。 M文件代码:Arrays Matlab输出中未定义的变量或函数错误,arrays,matlab,undefined,Arrays,Matlab,Undefined,附件中的图片有我正在处理的问题。下面是我的m文件中的代码和我在命令窗口中得到的输出。 M文件代码: 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,
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个变量组成的一维数组,y是由n个变量组成的一维数组,x是计算中使用的变量
我在一张纸上测试了代码算法,它应该返回6.65的值,但在本例中,它给出了上述错误
你们能帮我理解为什么我会出错吗?请看一看由问题和方程式组成的图像,我正试图为其编写此matlab代码。I=n+1:2的循环
是一个从6到2的循环,使用+1的步骤(这是默认值)。只要开始值高于结束值,就根本不执行循环。对于i=n+1:-1:2,您需要对于i=n+1:2,循环是使用+1的步骤从6到2的循环(这是默认值)。只要开始值高于结束值,就根本不执行循环。您想要i=n+1:-1:2的for循环,而您的for循环并没有预料到它所做的事情。当使用笔和纸进行此操作时,不同迭代中的i
值是多少?i的值应该从6降到2,在每次迭代中减少1。for循环没有预期到您认为的效果。当使用笔和纸进行此操作时,不同迭代中的i
值是多少?每次迭代中i的值应该从6降到2,减少1多亏了Daniel,for循环中的更改起了作用,我还必须初始化一个p值,这是最后的代码,它给出了正确的答案,函数p=PolyEval(n,a,y,x)p=a(n+1);对于i=n:-1:1p=a(i)+(x+y(i))*p;结束fprintf(“%6.0f%18.8f\n',p);end`非常感谢Daniel,for循环中的更改起作用了,我还必须将一个值初始化为p,因此这是最后一个代码,它给出了正确的答案`function p=PolyEval(n,a,y,x)p=a(n+1);对于i=n:-1:1p=a(i)+(x+y(i))*p;结束fprintf(“%6.0f%18.8f\n',p);结束`