Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Matlab输出中未定义的变量或函数错误_Arrays_Matlab_Undefined - Fatal编程技术网

Arrays Matlab输出中未定义的变量或函数错误

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,

附件中的图片有我正在处理的问题。下面是我的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, 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);结束`