如题,这东西怎么回事?
??? Error using ==> parallel_function at 598
Error in ==> fcnvectorizer>(parfor body) at 18
Subscripted assignment dimension mismatch.
总是诸如这样的错误,比如矩阵dimension不相同啊什么的。
比如 a(0)这种东西无效啊之类的。
是不是在使用并行计算的时候不能使用全局变量?
如果不使用全局变量,matlab里又没有变量指针,应该怎么调用外部的变量?
补充一下,我这个问题出在使用ga优化一个非线性系统的时候出现。
里面需要调用fitnessFunction,ga的方法是 ga(@fitnessFcn, # variables)。他用函数句柄调用,这样我就不能给函数输入其他参数了。我就崩溃了,所以就用了全局变量,并行的时候我再次崩溃了。
参考资料:matlab帮助文档
有一个前提是,我把代码从for 直接改成parfor。for 语句,使用serial 计算就没问题。
我现在倒是找到解决方法了,直接保存成文件,然后再子函数里读文件,就不用全局变量了,倒是可以,运行效率下降的比较多。
我用的2011a,貌似是7.12要么是7.14 ……