㈠ python调用Matlab函数或m脚本文件
在尝试使用Python调用Matlab文件的过程中,经常遇到找不到对应的函数或文件的问题。在进行操作时,按照官方教程进行,却总是提示未定义与 'double' 类型的输入参数相对应的函数 'triarea',尽管在Python中调用Matlab自带函数并无问题。
在排查过程中,猜测是由于MATLAB engine在搜索目录中找不到被调用的m文件或函数。因此,需要控制engine进入被调用的m文件目录。以确保Python文件能够成功调用Matlab文件。
整个Python代码如下:
运行后,结果如下:
----------------------------------------------------------------------------------------------
为了提供更直观的回答,以下环境信息已被简化:
操作系统:Win10
Matlab版本:2018a
Python环境:Anaconda下的 python 3.6
使用编辑器:Spyder
----------------------------------------------------------------------------------------------
参考:
官方教程:ww2.mathworks.cn/help/matlab/matlab-engine-for-python.html
网络资源:关于在Python中调用Matlab的相关讨论和解答。
㈡ (详解)python调用另一个.py文件中的类和函数或直接运行另一个.py文件
Python中调用另一个.py文件中的类和函数或直接运行文件,有多种方法,但推荐的做法包括:在同一文件夹内,通过`import`语句直接调用;在不同文件夹间,推荐创建`__init__.py`文件,并以相对或绝对路径导入;运行.py文件时,确保正确路径和权限。以下是具体步骤的详细说明:
1. 同一文件夹下的调用:
- 调用函数:在B.py文件中,使用`import A`然后`A.add()`即可。
- 调用类:同理,`import A`后,通过`A.addClass().method()`调用类和方法。
2. 在不同文件夹中,如A.py位于"C:\AmyPython\Test1":
- 通过`import`导入:在B.py中使用`import A.b`,前提是在A文件夹下创建了`__init__.py`。
- 主程序在子文件夹A中调用B.py:通过设置工作目录或指定绝对路径。
3. 运行.py文件:
- 同一目录下:直接运行文件名,如`python B.py`。
- 不同目录下:确保拥有执行权限,正确方式如`python /Users//Desktop/.py`,注意路径和权限问题。
总的来说,推荐的做法是将主程序放在根目录下,以保持更好的复用性和代码清晰度。但在子文件夹内有相互调用的情况下,适当设置路径或更改工作目录也是可行的。务必遵守版权协议,如需引用原文,请附上链接。