登录论坛

查看完整版本 : 为什么我得到“未定义的函数或变量此MATLAB代码中的错误?


poster
2019-12-10, 20:48
load X_Q2.data load T_Q2.data x = X_Q2(:,1); y = X_Q2(:,2); learningrate = 0.2; max_iteration = 50; % initialize parameters count = length(x); weights = rand(1,3); % creates a 1-by-3 array with random weights globalerror = 0; iter = 0; while globalerror ~= 0 && iter = 0 result = 1; else result = -1; end 什么都没出来。我在命令窗口中输出了代码,然后按Enter...。我如何获得输出?



回答:

您不能在while循环的条件检查中使用变量globalerror ,因为您直到在循环内才将变量定义为任何变量。这就是为什么出现错误“未定义的函数或变量'globalerror'”的原因。您必须将globalerror初始化为某个值, 然后再尝试在任何语句中使用它。

另外,正如我在回答上一个问题时 (https://stackoverflow.com/questions/3445484/matlab-syntax-errors-in-single-layer-neural-network/3445610#3445610)提到的那样 (https://stackoverflow.com/questions/3445484/matlab-syntax-errors-in-single-layer-neural-network/3445610#3445610) ,您不能在脚本中声明函数。尝试从上面的脚本中剪切出函数calculateOutput ,并将其放置在名为自己的文件calculateOutput.m ,然后将其保存在MATLAB路径 (http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_env/br7ppws-1.html)中的某个位置。

还有一些其他问题:


MATLAB使用基于1的索引,而不使用基于0的索引。换句话说,向量的第一个元素或矩阵维度的索引值为1,而不是0。
我不知道您要使用此行做什么:

localerror = output(p) - output 由于变量output是代码中的标量 ,而不是可以由p索引的向量 。



更多&回答... (https://stackoverflow.com/questions/3452611)