其中init.m文件这样写:
BeginPackage["haha`"]
EngPacakge[]
DeclarePackage["haha`dr`",{"dr"}]
Null
其中花括号里的dr就是程序包中的函数名(可以不止一个)。
如果$BaseDirectory目录下的Kernel文件夹中的init.m文件能够在mma启动的时候自动加载,如果在里面写一些指令的话,那么开启mma的时候就能自动执行,比者镇如把某个路径加入$Path,或者用Get函数自动加载存放在默认路径下的程序包。
如果在autoload文件夹下建立一个子目录A,然后在这个子目录中创建Kernel文件夹并且放入init.m文件,如果这个init.m中写入了A的路径和Get函数,那么就能自动加载程序包。
……嗯。逗哪御很有意思,真的很有意思,我以前都没意识到这个问题。确认一下,你的构建程序包的步骤其实是:1 Ctrl+N或者通过顶部菜单新建了一个笔记本。
2 写完代码后直接保存,存的时候选择存为.m文件。
对吧?
如果是这样——八成就是这样吧——那么,不对。你可以把你建出来的这个.m文件打开看一下。代码的背景色是灰的吧?就像这样:
正确的方法应该是在写完代码后,选中代码单元,右键,“样式”->“Code”,然后再存为.m文件,或者在新建的时候,就使用山岩顶部菜单,建一个.m文件,然后再在其中写代码,这种情况下,你再次打开.m文件时,代码的背景色是白的:
这样的程缓游序包应该就可以正常载入了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)