这是因为程序包里的迭代变量在命名空间 MyPackage`Private` 之内,而并行化的函数默认使用的符号定义在 Context 之内。也就是说默认情况下,并行化的函数会去 Global` 寻找变量或函数等的定义,这便出错了 [1] 。
很简单,我们只需要为并行化的函数指定并行计算中函数的定义。具体方法如下 [1][2] :
……嗯。很有意思,真的很有意思,我以前都没意识到这个问题。确认一下,你的构建程序包的步骤其实是:1 Ctrl+N或者通过顶部菜单新建了一个笔记本。
2 写完代码后直接保存,存的时候选择存为.m文件。
对吧?
如果是这样——八成就是这样吧——那么,不对。你可以把你建出来的这个.m文件打开看一下。代码的背景色是灰的吧?就像这样:
正确的方法应该是在写完代码后,选中代码单元,右键,“样式”->“Code”,然后再存为.m文件,或者在新建的时候,就使用顶部菜单,建一个.m文件,然后再在其中写代码,这种情况下,你再次打开.m文件时,代码的背景色是白的:
这样的程序包应该就可以正常载入了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)