从MATLAB过渡到Python

时间:2015-10-17 18:30:02

标签: python matlab

我知道之前已经提出过这个问题,但我不能对答案的含义做出正面或反面。

我正在从MATLAB过渡到Python。在MATLAB中,我可以编写自己的函数并在我的代码中使用它们。我知道我可以用Python做同样的事情。但我很难搞清楚如何去做。

我想做的是创建一个包含多个函数定义的文件,然后像任何其他模块一样将其导入Python。

首先,这是正确的思考方式吗?或者我只需要为每个函数创建多个定义文件?

其次,如果是正确的思考方式,我该如何访问该文件?我知道你必须设置PYTHONPATH。我看过它,它看起来对我来说毫无意义。

作为示例:我创建了一个名为User的文件夹。在其中我有一个名为ted.py的python函数。我将所述文件放在其余库文件所在的位置(如numpy或scipy)。我想导入名为User的文件。我怎么能这样做?

使用Python一段时间后我就明白了。只要文件位于同一目录中并且您正确使用导入,就可以使用文件中的一个,部分或全部函数定义。

2 个答案:

答案 0 :(得分:0)

你有一个类似于matlab的(matlab不像?dis-matlab式?)选项,可以将多个函数定义放入同一个.py文件中。一旦文件 - 比如fundefs.py - 在你的路径上,可能是通过发布import sys; sys.path.append('path/to/fundefs');,你可以导入它

  1. import fundefs,之后您可以fundefs.fun1fundefs.fun2等访问其中的功能。
  2. from fundefs import *,它会将所有函数抛出到当前的命名空间中。对于较大的模块,这通常是不鼓励的(并且不赞成),因为它会污染您的命名空间,但是对于您自己的一些功能,这可能就是您所追求的。另见this very informative answer(以及其中的评论)。
  3. 作为import very_long_and_descriptive_module_name as shorthand的中间位置,以shorthand.fun1shorthand.fun2等方式访问您的职能(如果您的定义位于文件very_long_and_descriptive_module_name.py中,则显然属于这种情况)< / LI>

答案 1 :(得分:0)

您不导入用户。你想要的是import ted。通常,您可以将ted.py放在与主python文件相同的文件夹中,而不是放在单独的文件夹中。