工程

较大的工程常常由多个模块组成,这些模块有负责计算的,有负责绘图的,有负责图形用户界面的等等,多模块协同合作,完成比较复杂的工作任务。在一个模块中使用其他模块的函数或类,需要首先导入该模块。[大谦MATLAB,dqmatlab点com]

使用内置模块和第三方模块

【MATLAB】

MATLAB的工具箱一旦正确安装,工具箱中的函数就可以在命令窗口和脚本编辑器中直接调用。

【Python】

使用内置模块中的函数和类,需要首先用import命令导入该模块,语法格式为:

code.python
import module1[, module2[, … moduleN]]

调用模块中的函数时,这样引用

code.python
模块名.函数名

如果只引入模块中的某个函数,使用from…import语句。

下面在模块中导入math模块,调用它的sin函数、cos函数和常量pi计算给定30度角的正弦和余弦。该文件保存为s04.py。

code.python
import math  #导入math模块
from math import cos  #从math模块中导入cos函数
angle=math.pi/6  #用常量pi计算30度角
a=math.sin(angle)  #用math.sin()函数计算30度角的正弦
b=cos(angle)  #用cos函数计算30度角的余弦
print(a)  #输出正弦值
print(b)  #输出余弦值

在Python IDLE文件脚本窗口,在"Run"菜单中单击"Run Module"选项,则IDLE命令行窗口显示下面的结果:

code.python
>>> =RESTART: …\Samples\ch15\s04.py
0.49999999999999994
0.8660254037844387

使用其他自定义模块

使用自定义模块,需要确保该模块文件位于MATLAB或Python搜索路径中,即要确保MATLAB或Python找得到该文件。

【MATLAB】

MATLAB中可以用addpath函数将指定目录添加到MATLAB搜索路径。所以,调用自定义模块中的函数时,可使用该函数将模块文件添加到MATLAB搜索路径。代码类似下面函数所示:

code.matlab
function y=my_function(x)
   addpath('需要调用的M文件所在的目录');
   y=another_function(x);   %调用另一个M文件中的函数
end

【Python】

对于自定义模块而言,因为模块文件保存的位置不确定,直接使用import语句可能会导致出错。一般情况下,使用import语句导入模块后,Python会按照以下顺序查找指定的模块文件:

• 当前目录,即该模块文件所在的目录;

• PYTHONPATH(环境变量)指定的目录;

• Python默认的安装目录,即Python可执行文件所在的目录。

所以,只要自定义模块文件放在这3种目录下,就能被Python找到。