在学习matlab的过程中,遇到如下问题:
??? Error: File: D:\学习盘\论文\4拓展\4拓展仿真5\main_pso.m Line: 26 Column: 3
Missing variable or function.
Error in ==> main at 33
[ARCH_PE,ttt]=main_pso(X,Y,M,X_val,St_Ta,ds,deep);
我在另外一个m文件中定义了main_pso函数
function [ARCH_PE,ttt]=main_pso(X,Y,M,Y_val,St_Ta,ds,deep) %PSO主程序
出现这个问题好久了,一直没能解决,希望大家帮助帮助我!谢谢
------解决方案--------------------------------------------------------
这个好像很难,帮你顶
------解决方案--------------------------------------------------------
你调用了一个函数,这个函数没有在当前目录下。
------解决方案--------------------------------------------------------
matlab的函数调用相当简单,对于子函数的问题,一般有2个解决方案:
1. 所有的函数都写在同一个m文件,主函数调用其他子函数,这样调用方便,不会存在找不到函数的情况;
2. 如果要区分,那么"最好"每个子函数都写成单独的m文件,这样只要在同一个文件夹下就可以互相调用
你的这个错误的确提示函数文找到,你说"我在另外一个m文件中定义了main_pso函数",那么:
a)那个m文件的名字是否是'main_pso.m'?
b)那个m文件中'main_pso'函数是否是主函数,而不是子函数?
这2个条件不满足的话,你在其它m文件就无法调用这个函数.a不满足,matlab找不到该函数,b不满足,一样找不到,因为子函数的作用域只在当前m文件.