为什么我会得到一个;未定义的函数或变量<;变量名>&引用;这个MATLAB代码中有错误吗?
什么都没有出来。我在命令窗口中取出代码,然后按enter键……窗口中没有显示任何内容。如何获取输出?您不能在while循环的条件检查中使用变量为什么我会得到一个;未定义的函数或变量<;变量名>&引用;这个MATLAB代码中有错误吗?,matlab,undefined,Matlab,Undefined,什么都没有出来。我在命令窗口中取出代码,然后按enter键……窗口中没有显示任何内容。如何获取输出?您不能在while循环的条件检查中使用变量globalerror,因为您在循环中才定义该变量。这就是为什么会出现错误“未定义函数或变量'globalerror'”。在任何语句中使用它之前,必须将globalerror初始化为某个值 另外,正如我在中提到的,您不能在脚本中声明函数。尝试从上面的脚本中删除函数calculateOutput,并将其放在自己的名为calculateOutput.m的文件中
globalerror
,因为您在循环中才定义该变量。这就是为什么会出现错误“未定义函数或变量'globalerror'”。在任何语句中使用它之前,必须将globalerror
初始化为某个值
另外,正如我在中提到的,您不能在脚本中声明函数。尝试从上面的脚本中删除函数calculateOutput
,并将其放在自己的名为calculateOutput.m
的文件中,然后将其保存在屏幕上的某个位置
我还发现了一些其他问题:
- MATLAB使用基于1的索引,而不是基于0的索引。换句话说,向量或矩阵维度的第一个元素的索引值为1,而不是0
- 我不知道你想用这句话做什么:
因为变量function result = calculateOutput (weights, x, y) s = x * weights(1) + y * weights(2) + weights(3); if s >= 0 result = 1; else result = -1; end
是代码中的标量,而不是可以被output
索引的向量p
globalerror
,因为只有在循环中才能将该变量定义为任何内容。这就是为什么会出现错误“未定义函数或变量'globalerror'”。在任何语句中使用它之前,必须将globalerror
初始化为某个值
另外,正如我在中提到的,您不能在脚本中声明函数。尝试从上面的脚本中删除函数calculateOutput
,并将其放在自己的名为calculateOutput.m
的文件中,然后将其保存在屏幕上的某个位置
我还发现了一些其他问题:
- MATLAB使用基于1的索引,而不是基于0的索引。换句话说,向量或矩阵维度的第一个元素的索引值为1,而不是0
- 我不知道你想用这句话做什么:
因为变量function result = calculateOutput (weights, x, y) s = x * weights(1) + y * weights(2) + weights(3); if s >= 0 result = 1; else result = -1; end
是代码中的标量,而不是可以被output
索引的向量p
globalerror
初始化为0,因此从未输入while循环。您必须将其初始化为非零值。然而,这是你的最小问题。看起来,您甚至在理解所涉及的算法方面都有很大的困难,更不用说如何将它们从另一种语言翻译成MATLAB了。我认为您需要花一些时间来学习MATLAB的基础知识,从开始,这是非常好的。作为一个社区,如果将代码编辑为:while x~=0 x=10;x=x-func(x)end对于未来的读者来说更简洁,并且具有相同的概念。@MatlabDoug:这将帮助未来的读者,他们可能会遇到与OP类似的问题,但实际上,OP还没有意识到与此代码相关的一些其他问题是问题。我想说的是,它应该保持原样,以帮助这个特定的用户处理这些额外的错误。标题编辑(可能还有一些标记编辑)应该有助于概括这个问题。@ishamahajan:更新代码的一个问题是,由于您将globalerror
初始化为0,因此从未输入while循环。您必须将其初始化为非零值。然而,这是你的最小问题。看起来,您甚至在理解所涉及的算法方面都有很大的困难,更不用说如何将它们从另一种语言翻译成MATLAB了。我认为您需要花一些时间来学习MATLAB的基础知识,从开始,这是非常好的。因为我有两个数据文件,一个用于输入,一个用于输出。我宁愿写T_Q2[p]…你说什么?你可以在我的另一个问题中检查这两个文件的格式…因为我有两个数据文件,一个用于输入,一个用于输出。我宁愿写T_Q2[p]…你说什么?你可以在我的另一个问题中检查这两个文件的格式。。。。
localerror = output(p) - output