相关疑难解决方法(0)

将MATLAB代码转换为Python的工具

我有一堆来自MS论文的MATLAB代码,现在我想将其转换为Python(使用numpy/scipy和matplotlib)并作为开源分发.我知道MATLAB和Python科学库之间的相似性,并且手动转换它们将不会超过两周(假设我每天都在努力工作一段时间).我想知道是否已经有任何可以进行转换的工具.

python matlab numpy matplotlib scipy

137
推荐指数
3
解决办法
22万
查看次数

在MATLAB中嵌入Python

我试图将Python 2.6嵌入到MATLAB(7.12)中.我想嵌入一个用C编写的mex文件.这对于使用标量的小型简单示例很有用.但是,如果导入Numpy(1.6.1),MATLAB崩溃了.我说无论如何,因为我已经尝试了许多方法来加载numpy库,包括

  1. 在python模块(.py)中:

    from numpy import *
    
    Run Code Online (Sandbox Code Playgroud)
  2. 随着PyRun_SimpleString在MEX文件:

    PyRun_SimpleString(“from numpy import *”);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 调用numpy函数Py_oBject_CallObject:

    pOut  = PyObject_CallObject(pFunc, pArgs); 
    
    Run Code Online (Sandbox Code Playgroud)

最初,我认为这可能是将Numpy嵌入C中的问题.但是,当嵌入在使用Visual Studio 2005 C编译器的/ MD(多线程)开关的命令行编译的简单C文件中时,Numpy工作正常.接下来,我想我只需要在MATLAB中更改make文件以包含/ MD开关.没有这样的运气,mexopts.bat与/ MD开关编译.我还手动注释了Numpy init模块中的行,以找出崩溃的MATLAB.似乎加载任何扩展名为pyd的文件会导致MATLAB崩溃.在NumPy中加载的第一个这样的文件是multiarray.pyd.MATLAB文档描述了如何使用Visual Studio调试mex文件,并在下面放置了错误消息.在这一点上,我知道问题是pyd的内存问题和MATLAB的一些冲突.有趣的是,我可以在MATLAB中使用系统命令来启动使用numpy的python中的进程,并且不会生成错误.我将在MATLAB的错误消息下面粘贴,然后在可视化工作室中粘贴MATLAB崩溃的过程中的DEBUG输出.但是,我并没有粘贴整个事情,因为第一次机会的例外列表很长.有没有解决这个集成问题的建议?

MATLAB error
Matlab has encountered an internal problem and needs to close 
MATLAB crash file:C:\Users\pml355\AppData\Local\Temp\matlab_crash_dump.3484-1:


------------------------------------------------------------------------
       Segmentation violation detected at Tue Oct 18 12:19:03 2011
------------------------------------------------------------------------

Configuration:
  Crash Decoding  : Disabled
  Default Encoding: windows-1252
  MATLAB License  : 163857
  MATLAB Root     : C:\Program Files\MATLAB\R2011a
  MATLAB Version  : 7.12.0.635 (R2011a)
  Operating System: …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy mex

31
推荐指数
1
解决办法
3417
查看次数

在matlab中直接在python中使用sklearn

请不要将此标记为如何从matlab调用python和sklearn的副本?因为我认为这个问题没有真正回答.
自从Matlab Release R2014b我认为,可以直接使用matlab中的python.
简而言之,您只需要放在pypython调用前面.
我的设置(在使用命令为matlab提供python路径之后pyversion('PATH_TO_PYTHON'),运行正常.我甚至可以使用dask多处理.非常酷.例如,执行py.dask.distributed.Client结果

  Python Client with properties:

              asynchronous: 0
                   cluster: [1×1 py.distributed.deploy.local.LocalCluster]
         get_futures_error: [1×1 py.method]
                coroutines: [1×1 py.list]
            scheduler_file: [1×1 py.NoneType]
                      loop: [1×1 py.tornado.platform.select.SelectIOLoop]
    recreate_error_locally: [1×1 py.method]
                  refcount: [1×1 py.collections.defaultdict]
                extensions: [1×1 py.dict]
                 scheduler: [1×1 py.distributed.core.rpc]
                       rpc: [1×1 py.distributed.core.ConnectionPool]
                   futures: [1×1 py.dict]
            scheduler_comm: [1×1 py.distributed.batched.BatchedSend]
                    status: [1×7 py.str]
           connection_args: [1×1 py.dict]
                        id: [1×43 py.str]
                generation: [1×1 py.int]
                   io_loop: [1×1 py.tornado.platform.select.SelectIOLoop]
                  security: [1×1 py.distributed.security.Security]

    <Client: scheduler='tcp://127.0.0.1:59795' …
Run Code Online (Sandbox Code Playgroud)

python matlab scikit-learn

6
推荐指数
1
解决办法
652
查看次数

标签 统计

matlab ×3

python ×3

numpy ×2

matplotlib ×1

mex ×1

scikit-learn ×1

scipy ×1