欢迎访问yhm138的博客园博客, 你可以通过 [RSS] 的方式持续关注博客更新

MyAvatar

yhm138

HelloWorld!

Mathematica制作和使用程序包

分享一个程序包仓库

https://resources.wolframcloud.com/PacletRepository/

(*  12.1 版本及之后才能用这个PacletInstall命令 *)
(* 仍然不行的话,可以用云环境 https://www.wolframcloud.com/ *)
(* 或者你把它对应的github仓库下载到本地 *)


PacletInstall["PeterBurbery/RecreationalMathematics"]
Needs["PeterBurbery`RecreationalMathematics`"]

步骤

这里拿你制作并且使用一个程序包lost为例子
新建一个空白.wl文档,输入代码如下

BeginPackage[ "MyPkg`"]

  MainFunction::usage = 
	"MainFunction[ x] computes a simple function."

  Begin[ "Private`"]

  MainFunction[ x_] :=
    Module[ {y},
      y = x^2;
      y + 1
    ]

  End[]

EndPackage[]

把.wl文件另存为lost.wl,随便放哪里

然后新建个nb文档,
如果你保存位置在某个$Path之下,输入 <<lost.wl 就能导入
如果你是随便存放的,举个例子,你应该 <<"C:/dir1/dir2/lost.wl" 导入

?MyPkg`* 来看此程序包内有哪些函数

之后 MainFunction[10] 来测试是否导入

Tips

<< 是Get的语法糖
$Path 给出在试图找到一个外部文件时搜索的缺省目录列表

$Path 这样的叫做环境变量,这么写也行 Environment["Path"].当然你Linux玩的溜的话你绝对会选择第一种写法

下面这些我还没有弄懂:
$Context 是一个给出当前上下文的全局变量.
$Packages 给出与您当前 Wolfram 系统会话中加载的所有软件包相应的上下文列表.
$ContextPath 是一个全局变量,它提供在 $Context 之前待搜索的上下文列表以试图找到已经输入的符号.

Needs,Get,这些地方乱得很,还有.m,.wl,.wls
分得清当然更好,本篇文章对您一点帮助也没有。

参考

Mathematica 程序包 package,这篇博客对我帮助很大
官方文档,对我没什么帮助老实说

posted @ 2021-02-26 17:39  yhm138  阅读(1318)  评论(0编辑  收藏  举报