精华内容
下载资源
问答
  • Matlab上成熟的函数库,进行数值计算和绘图很方便,在国内的应用也很广。不过授权也是大问题,所以目前有很多的替代开源实现,在Python上,我目前接触过Scipy(www.Scipy.org)和Matplotlib...

    数值计算和绘图的Python包Scipy和Matplotlib的介绍,两者的关系,和使用的选择建议。

    Matlab上成熟的函数库,进行数值计算和绘图很方便,在国内的应用也很广。不过授权也是大问题,所以目前有很多的替代开源实现,在Python上,我目前接触过Scipy(www.Scipy.org)和Matplotlib(http://matplotlib.sourceforge.net/)2个项目。

    " SciPy 是一个基于 Python 的项目,它旨在再现 MATLAB 的所有功能,优化其性能并简化与其它软件的集成,同时仍保持完全免费以及至少和 MATLAB 一样易于使用。"

    (http://www-128.ibm.com/developerworks/cn/linux/l-oslab/index.html)

    Scipy每年都有SciPy  Conference,目前的版本还是04年的0.3.2,需要Python2.3  wxPython2.4   Numeric23等支持。Scipy的结构是scipy_core和scipy_lib两个部分,不过自己编译比较麻烦,要C和Fortran编译器。如果你需要比较完整的Matlab功能支持,可以选择它。建议安装Enhanced Python (http://www.enthought.com/python/) ,一次安装,该有的都有了。

    “Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。Matplotlib 掌握起来也很容易,由于 Matplotlib 使用的大部分函数都与 Matlab 中对应的函数同名,且各种参数的含义,使用方法也一致,这就使得熟悉 Matlab 的用户使用起来感到得心应手。对那些不熟悉的 Matlab 的用户而言,这些函数的意义往往也是一目了然的,因此只要花很少的时间就可以掌握。”(http://www-128.ibm.com/developerworks/cn/linux/l-matplotlib/?ca=dwcn-newsletter-linux)

    Matplotlib /Pylab,是一个比较轻量级的仿Matlab实现,版本更新也很快,目前最新的是支持Python2.4/2.3的 今年9月发布的0.84,和Python 2.4 wxPython2.6u等新版本的兼容都很好 ,数值计算支持Numeric 和 Numarray,个人建议用Numarray,如果是Numeric,目前最好用23,不用24版本。如果你想使用Python 2.4,并且主要是一些2维图形的开发,Matplotlib就很适合你。

    Scipy,Matplotlib,Numeric 和 Numarray,他们一起的组合就成了Python在数值计算绘图方面的利器,而且值得注意的是,他们都有一些共同的开发者,比如John Hunter,   Jay T Miller等人,所以在兼容上很好。目前值得关注的还有一个东西就是numpy(http://sourceforge.net/projects/numpy)上新发布的 scipy_core0.4,个人猜测,这个因该将用于Scipy的新版本和Numarray 的接替,比较scipy0.32的core代码和scipy_core0.4的代码,如果修改代码 ,scipy0.32_lib+scipy_core0.4应该可以用在python2.4上。

    posted on

    2005-10-21 12:01

    开卷有益

    阅读(8548)

    评论(3)

    编辑

    收藏

    展开全文
  • 前面有几道作业题,用MATLAB简单做了下,不知道对不对,错误之处还请指出。题目是这样的。一、MATLAB版本:clear;clc% 生成training sampleMU1 = [1 2];MU2 = [4 6];SIGMA1 = [4 4; 4 9];SIGMA2 = [4 2; 2 4];M1 = ...

    看李政轩老师讲的Kernel,讲的非常好!前面有几道作业题,用MATLAB简单做了下,不知道对不对,错误之处还请指出。

    题目是这样的。

    一、MATLAB版本:

    clear;

    clc

    % 生成training sample

    MU1 = [1 2];

    MU2 = [4 6];

    SIGMA1 = [4 4; 4 9];

    SIGMA2 = [4 2; 2 4];

    M1 = mvnrnd(MU1,SIGMA1,100);

    M2 = mvnrnd(MU2,SIGMA2,100);

    %生成testing sample

    TEST1 = mvnrnd(MU1,SIGMA1,50);

    TEST2 = mvnrnd(MU2,SIGMA2,50);

    %向量化的计算

    %中间点C

    C = (MU1+MU2)/2;

    C_M = repmat(C,50,1);

    %MUi vector

    TRAIN_V = MU1 - MU2;

    TRAIN_V_M = repmat(TRAIN_V,50,1);

    %TEST vector

    TEST1_V = TEST1 - C_M;

    TEST2_V = TEST2 - C_M;

    %预测第一个测试集

    num1 = 0;

    for (i=1:50)

    d = dot(TRAIN_V,TEST1_V(i,:));

    if d >0

    num1 = num1 + 1;

    end

    end

    disp(['测试集1输入数据数量为:',num2str(length(TEST1_V)),'正确分类的数量为:',num2str(num1)])

    disp(['测试集1的预测准确度为:',num2str(num1/length(TEST1_V))])

    num2 = 0;

    for (i=1:50)

    d = dot(TRAIN_V,TEST2_V(i,:));

    if d <0

    num2 = num2 + 1;

    end

    end

    disp(['测试集2输入数据数量为:',num2str(length(TEST2_V)),'正确分类的数量为:',num2str(num2)])

    disp(['测试集2的预测准确度为:',num2str(num2/length(TEST2_V))])

    %两样本中心值连线的斜率

    K = TRAIN_V(2)/TRAIN_V(1);

    %两样本中心值连线的中垂线的斜率

    k = K/(-1);

    x = min(TEST1):0.1:max(TEST2);

    y = k*(x-C(1))+C(2);

    plot(TEST1,TEST2,'O',MU1,MU2,'o',x,y)

    输出如下:

    作图:

    二、python3版本

    注意这里原始的training data 做了改动,原理是一样的。

    # -*- coding: utf-8 -*-

    """

    Created on Sun Nov 6 20:02:02 2016

    @author: Administrator

    """

    import numpy as np

    from matplotlib import pyplot as plt

    # train matrix

    def get_train_data():

    M1 = np.random.random((100,2))

    M2 = np.random.random((100,2)) - 0.7

    plt.plot(M1[:,0],M1[:,1], 'ro')

    plt.plot(M2[:,0],M2[:,1], 'go')

    return M1,M2

    def classify(M1,M2,test_data):

    mean1 = np.mean(M1, axis=0)

    mean2 = np.mean(M2, axis=0)

    mean = (mean1 + mean2)/2

    # for plot

    km = (mean1[1]-mean2[1])/(mean1[0]-mean2[0])

    k = km/(-1)

    min_x = np.min(M2)

    max_x = np.max(M1)

    x = np.linspace(min_x, max_x, 100)

    y = k*(x-mean[0])+mean[1]

    plt.plot(x,y,'y')

    vector_train = mean1 - mean

    vector_test = test_data - mean

    vector_dot = np.dot(vector_train, vector_test)

    sgn = np.sign(vector_dot)

    return sgn

    def get_test_data():

    M = np.random.random((50,2))

    plt.plot(M[:,0],M[:,1],'*y')

    return M

    if __name__=="__main__":

    M1,M2 = get_train_data()

    test_data = get_test_data()

    right_count = 0

    for test_i in test_data:

    classx = classify(M1,M2,test_i)

    if classx == 1:

    right_count += 1

    plt.show()

    print("The accuracy of right classification is %s"%str(right_count/len(test_data)))

    输出:

    展开全文
  • 这两个问题是,Python代码在很多地方与MATLAB代码做的事情不一样,而且Python代码在多个地方都是无效的。在首先,在MATLAB代码中,这一行继续循环,直到到达文件末尾:while(feof(D_P)==0)%。显然,您正试图对python...

    这两个问题是,Python代码在很多地方与MATLAB代码做的事情不一样,而且Python代码在多个地方都是无效的。在

    首先,在MATLAB代码中,这一行继续循环,直到到达文件末尾:while(feof(D_P)==0)%。显然,您正试图对python中的这一行执行相同的操作:if line == '':。但是,它只在行为空时运行代码。在

    你可以在python中使用这种方法,但是你不应该这样做。这将自动循环D_P的行,将每一行放入变量line。另外,您应该使用with open ("distance_profil.txt","r") as D_P:安全地打开和关闭文件,就像ReadFile函数中所做的那样。您可以使用enumerate来跟踪带有for i, line in enumerate(D_P):的索引。你还试着把每一行读两遍,这意味着你真的每一行都读了。在

    下一个问题是这行cA= np.array(sign)。您不能在任何地方定义sign变量。它是在ReadFile()函数中定义的,您永远不会使用它,应该删除它。因此,它不是使用sign变量,而是使用scipy.sign函数,如果您定义了sign变量,您将覆盖该函数。这就是为什么from ___ import *是个坏主意。使用import scipy as sp或类似的东西。但是,您不需要这样做,因为您只使用一个scipy函数,它是单独导入的。在

    与MATLAB不同,函数是Python中的一类对象。你可以像其他变量一样使用它们。因此,您正在创建一个包含一个函数的数组,而不是您显然想要的数字数据。但是,对于需要数字输入的dwt函数,这将失败。您需要做的是将文本行转换成一个数字数组。在ReadLine中使用的方法是可以的,除了它读取错误的文件并读取整个文件而不是一行,您是从某个地方复制的吗?然而,这不是一个很好的方法。最好使用np.fromstring(line.strip(), sep=' ')。这将把字符串解释为由空格分隔的一系列数字(替换为您需要的任何内容),并将其转换为numpy数组。这更快更容易。在

    接下来,使用dwt函数,将^{赋值给array[cA[i,], cD[i,]]。因为没有array变量,所以这不是您想要的,也不会起作用。如果array是一个2D numpy数组,这将把dwt的结果分配给与cA和cD的索引{}对应的坐标处的索引。您只想分配给cA和cD。这意味着您还可以删除cA和cD的早期定义。在

    然后,使用dwt调用,将输入包装在[]中。在Python中,它将列表作为单个参数传递,而不是作为所需的两个参数。在MATLAB中,它也不起作用,因为它会尝试将一个数字数组与一个字符数组连接起来(这将失败),并将其作为单个输入传递给函数。所以pywt.dwt(sign, 'db2')。在

    所以这行应该是:cA, cD = pywt.dwt(sign, 'db2')。在

    另外,您可以使用cdH几个地方,但从未定义它。它应该是cD?同样,对于cdH([i,]),MATLAB没有区分函数调用和数组访问,但是python有。您需要使用方括号[],并且只需要使用方括号来编制索引。cdH([i,])将被解释为“使用列表输入[i,]调用函数{},这将不起作用,因为{}不是一个函数(如果定义了它,则不会是函数)。后面的逗号也是多余的。所以你只要做cdh[i]。在

    接下来,将loc定义为空列表,然后定义locs,然后执行loc = [loc, locs]。{{cd47}是有效的。然而,在python中,这将创建一个看起来像[[], locs]的列表,这是完全不同的。你应该把这三条线减少到[pks,loc] = find_peaks_cwt(abs(cdH([i,]),'threshold',3)。在

    另外,在下面,您要写sign(2*locs)。正如我所说,您需要使用括号来编制索引,因此这需要是sign[2*locs]。在

    接下来,python没有mod函数。使用%在Python中做模数。我不确定带一个参数的mod在你的MATLAB版本中做了什么,在我的版本中它会引发错误。但是,从上下文来看,我假设您正在尝试获取小数部分,即locs%1。在

    最后,您要plt.plot(abs(cdH(i,)),locs,mod(locs),'ro')。MATLAB和Python都不知道如何用这样的三个数组进行绘图。您要么需要像MATLAB代码那样将plt.plot(abs(cdH(i,)))拆分成自己的plot命令,要么将np.arange(len(cdH(i,)))作为plot的第一个参数。和另一个情节一样。在

    总的来说,您似乎对MATLAB或Python(或两者)都不太熟悉。在再次尝试编写类似的代码之前,有必要先温习一下这两个方面的基础知识。在

    展开全文
  • Matlab上成熟的函数库,进行数值计算和绘图很方便,在国内的应用也很广。不过授权也是大问题,所以目前有很多的替代开源实现,在..." SciPy 是一个基于 Python 的项目,它旨在再现 MATLAB 的所有功能,优化其性能并简...

    Matlab上成熟的函数库,进行数值计算和绘图很方便,在国内的应用也很广。不过授权也是大问题,所以目前有很多的替代开源实现,在Python上,我目前接触过Scipy(www.Scipy.org)和Matplotlib(http://matplotlib.sourceforge.net/)2个项目。

    " SciPy 是一个基于 Python 的项目,它旨在再现 MATLAB 的所有功能,优化其性能并简化与其它软件的集成,同时仍保持完全免费以及至少和 MATLAB 一样易于使用。"

    (http://www-128.ibm.com/developerworks/cn/linux/l-oslab/index.html)

    Scipy每年都有SciPy  Conference,目前的版本还是04年的0.3.2,需要Python2.3  wxPython2.4   Numeric23等支持。Scipy的结构是scipy_core和scipy_lib两个部分,不过自己编译比较麻烦,要C和Fortran编译器。如果你需要比较完整的Matlab功能支持,可以选择它。建议安装Enhanced Python (http://www.enthought.com/python/) ,一次安装,该有的都有了。

    “Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。Matplotlib 掌握起来也很容易,由于 Matplotlib 使用的大部分函数都与 Matlab 中对应的函数同名,且各种参数的含义,使用方法也一致,这就使得熟悉 Matlab 的用户使用起来感到得心应手。对那些不熟悉的 Matlab 的用户而言,这些函数的意义往往也是一目了然的,因此只要花很少的时间就可以掌握。”(http://www-128.ibm.com/developerworks/cn/linux/l-matplotlib/?ca=dwcn-newsletter-linux)

    Matplotlib /Pylab,是一个比较轻量级的仿Matlab实现,版本更新也很快,目前最新的是支持Python2.4/2.3的 今年9月发布的0.84,和Python 2.4 wxPython2.6u等新版本的兼容都很好 ,数值计算支持Numeric 和 Numarray,个人建议用Numarray,如果是Numeric,目前最好用23,不用24版本。如果你想使用Python 2.4,并且主要是一些2维图形的开发,Matplotlib就很适合你。

    Scipy,Matplotlib,Numeric 和 Numarray,他们一起的组合就成了Python在数值计算绘图方面的利器,而且值得注意的是,他们都有一些共同的开发者,比如John Hunter,   Jay T Miller等人,所以在兼容上很好。目前值得关注的还有一个东西就是numpy(http://sourceforge.net/projects/numpy)上新发布的 scipy_core0.4,个人猜测,这个因该将用于Scipy的新版本和Numarray 的接替,比较scipy0.32的core代码和scipy_core0.4的代码,如果修改代码 ,scipy0.32_lib+scipy_core0.4应该可以用在python2.4上。

    展开全文
  • https://blog.csdn.net/m0_37638031/article/details/789824982.然后安装引擎,具体就是到matlab下的目录:extern\engines\python里输入命令:python setup.py install要注意的是不同版本的matlab支持python版本也...
  • 我正在尝试将Python2.6嵌入MATLAB(7.12)中。我想嵌入一个用C语言编写的mex文件,这对于使用标量的简单小例子来说很好。但是,如果Numpy(1.6.1)在任何情况下被导入,MATLAB就会崩溃。我之所以这么说,是因为我尝试了...
  • MATLAB 在数据可视化、数据分析以及数值计算方面的巨大优势,使其在高校科学研究以及企业产品研发中具有不可或缺的作用。相比之下,伴随人工智能的发展,Python因更易学、...目前,MATLAB支持2.7、3.6和3.7版本Pyth...
  • 问题来源笔者曾经在python34上安装matlab接口,当时使用的版本为matlab 2015b,众所周知,2015年还没发行py36,所以只能支持到py34。这种不兼容有两种解决办法,你可以通过查看本地的matlab文档进而知道支持的py版本...
  • 如题,在matlab2015a及其以后版本中,开始支持python。1 在进入Matlab后,首先在主窗口点击设置路径,添加python的安装目录(选择“添加并包含子文件夹”),就可以自动添加python目录下的路径。2 matlab中调用python...
  • MATLAB对多线程的支持并不足够, 涉及循环的程序往往需要逐一执行而无法充分利用机器的算力导致执行时间过长。但好在MATLAB提供了Python的接口, 可以方便地从Python中启动MATLAB进程, 并调用相应的MATLAB程序。最为...
  • 其实Matlab是一款很专业的软件,在某些领域专用的,尤其是一些昂贵的仪器上就只支持Matlab使用,像一些模型的建立,单用Python是搞不定的,之前我呆过的某能源行业就是这样的,有好几台非常贵...
  • matlab调用python自定义函数

    千次阅读 2019-01-08 14:02:08
    matlab2015a及其以后版本中,开始支持python。 1 在进入Matlab后,首先在主窗口点击 设置路径,添加python的安装目录(选择“添加并包含子文件夹”),就可以自动添加python目录下的路径。 2 matlab中调用python...
  • matlab调用python函数记录一

    千次阅读 2019-03-02 17:01:23
    matlab调用python函数记录一 记录下,避免以后花时间搜索 ...当前matlab 2018b 仍旧不支持pytorch 0.4以上,试了google 上的一些方法,和大多网友一样仍不能解决问题,因此, 将pytorch版本降低为0...
  • matlab R2016b 注意:matlab2016 支持python最高版本为3.5 步骤1: 进入此文件夹 运行命令: python setup.py install 步骤二: pip 安装各种包 步骤三: 你就可以使用呢 接下里验张pythonMATLAB 混编...
  • Matlab上成熟的函数库,进行数值计算和绘图很方便,在国内的应用也很广。不过授权也是大问题,所以目前有很多的替代开源实现,在Python上,我目前接触过... " SciPy 是一个基于 Python 的项目,它旨在再现 MATLAB...
  • MATLAB R2018b 相比,主要改进在...支持python 3.7;C++ API支持第三方库;MATLAB集成的Git可以与外部客户端同步;可以通过新建Project,更方便的管理代码。Release Notes for MATLAB​ww2.mathworks.cn更新:MA...
  • MATLAB 自动将兼容的 Python 数据转换为MATLAB数据。...以下是 MATLAB 中不支持的功能 在运行 MATLAB 时关闭 Python 解释器 将 Python 对象保存(序列化)到 MAT 文件中 交互式 Python 帮助(在没...
  • Matlab转战Python的第一步懂王川普一声吼,Matlab说分手。与此前EDA工具停止支持的时候不同,EDA工具不更新了还能在权限有效期内使用现有版本,这次激活过的正版Matlab软件都会跳出反激活通知,然后显示授权许可...
  • 说不上取代,但是在MATLAB中做深度学习会越来越舒服是真的。因为MATLAB自己工具链很庞大,在科学计算和工业界应用非常广泛,所生成的巨量数据也是非常有机器学习的需求。...以及原生支持GPU训练的工具:net ...
  • 因为matlab支持 32bitpython 和高版本python。而系统默认装是32bit 。anaconda只能虚拟路径。 一:添加anaconda的envs到path 代替系统的32bit 二:装个64bit的python 三:在matlab中指定路径。重启后会变 ...
  • 参考资料:https://github.com/lijin-THU/notes-python(相应实体书为:《自学Python——编程基础、科学计算及数据分析》)从Matlab到Numpy1. Numpy和Matlab比较2. array还是matrix?(数组 VS 矩阵)Numpy 中不仅...
  • %开启latex支持 % xticklabels({'$\int_1^{20} x^2 dx$','x = 5','x = 10'})%解释x坐标 % ax.TickDir='out';%刻度线的指向方向,向里或向外 % ax.XMinorTick='on';%开启次刻度线 % ax.TickLength=[0.01 0.025];%刻度...
  • 笔记本电脑配置(14年的老机器)CPU i54200 显卡:GTX850m1、软件准备:vs2013cuda8.0(官网下载,查看显卡是否支持cuda),cudnn v5.0(支持cuda8.0)Python使用的是anaconda2(Python2.7)(anaconda3在编译caffe...
  • 原标题:IEEE Spectrum 2019 年度编程语言排行榜:Matlab 上榜IEEE Spectrum 发布了 2019 年年度编程语言排行榜。IEEE Spectrum 专为引领变革的先锋人士和积极探索问题解决方案的进步人士而设计,旨在探讨未来技术...
  • MATLAB和Mathematica、Maple并称为三大MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像...
  • 强烈建议使用今年华南农业大学、暨南大学、华南理工大学高校硕博学生联合团队推出的Python高性能遗传和进化算法工具箱:Geatpy。它是目前进化计算领域与platemo、matlab遗传算法工具箱等有相当的权威和影响力的实用...
  • win10下在jupyter notebook里添加matlab支持,解决python3.7不支持问题1.查看MATLAB Engine API for Python支持环境2.创建对应的虚拟环境1.更换conda为国内镜像源(自带的太慢)2.创建相应python版本的虚拟环境3.查看...
  • 在进行数据处理的时候,我比较喜欢的数据存储方式是所有的数据都保存成MATLAB的“.mat”文件,这种格式Python,Mathematica,MATLAB都会支持。不过在转化的时候得注意,特别是涉及到1维矩阵转化为多维矩阵的操作时,...
  • 问题来源笔者曾经在python34上安装matlab接口,当时使用的版本为matlab 2015b,众所周知,2015年还没发行py36,所以只能支持到py34。这种不兼容有两种解决办法,你可以通过查看本地的matlab文档进而知道支持的py版本...
  • 任意长度的字符串的操作 矩阵的乘积 迭代求解的使用 等等 源文件包含在以下目录中:复制代码 C Fortran IDL Java Julia Matlab Python R Scala 还有一个目录:复制代码 Data 它包含一个 Python 脚本,该脚本在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,040
精华内容 416
关键字:

matlab支持python

python 订阅
matlab 订阅