zoukankan      html  css  js  c++  java
  • Python编程语言中调用Matlab绘制保存数据的方案

    在Python编程语言的应用的过程中,如果你想通过Python编程语言调用Matlab绘制保存数据,你可以参考我们以下的文章对其有一个详细的了解,以下是文章的的主要内容。望你能有所收获。

    调用Matlab绘制保存数据

    最近我做实验时需要把得到的数据用Matlab绘图并保存下来。一个小问题是原始的数据文件中不仅有数据还有一些注释的部分(注释部分在数据之前,每行以#开头)。直接用Matlab绘图比较麻烦,因为不能直接处理数据,所以或者要把数据单独提取出来,另存成一个文件。

    或者就要用Matlab写一个过滤文本的程序。不过Matlab处理文本并不是它的强项。 所以这两个办法我都不很满意。Python再次给我提供了解决的方案。一方面Python编程语言具有很强的文本处理能力,另一方面Python对 Matlab这种交互式的程序提供了直接调用的的途径,所以写一个Python脚本来完成这一任务无疑是比较合适的。下面是实现的代码:

    1. import os  
    2. import string  
    3. 1filepath = "d:\\\\exp\\\\chgeff_lar_1" 
    4. 2filename="chgeff_lar_1" 
    5. 3id = open(filepath, 'r')  
    6. 4lines = fid.readlines()  
    7. 5fid.close()  
    8. 6x = []; y = []  
    9. 7for line in lines:  
    10. 8if line[0]=="#" or len(line)==1:  
    11. 9continue  
    12. 10else:  
    13. 11xval, yval = string.split(line)  
    14. 12x.append(float(xval))  
    15. 13y.append(float(yval))  
    16. 14id = open(filename+'.m', 'w')  
    17. 15fid.write("""  
    18. 16x = %s  
    19. 17y = %s  
    20. 18plot(x, y)  
    21. 19xlabel('Particle diameter (nm)')  
    22. 20ylabel('Charging efficiency')  
    23. 21print -deps  %s.eps  
    24. 22pause(10)  
    25. 23"""  %  (x, y, filename))  
    26. 24fid.write("exit")  
    27. 25fid.close()  
    28. 26cmd = "d:\\\\matlab6p5\\\\bin\\\\win32\\\\matlab.exe -nodesktop -r  " + filename  
    29. 27os.system(cmd)  

    以上6-13句实现两个功能,一是过滤文本(8-9句),通过检查每一行的第一个字符及行的长度,把注释行和空行给去掉。二是把读到的每一行数据自动分配 到两个变量x,y中(10-13句)。然后Python把一组Matlab代码(16-24句)写到文件filename.m中。最后利用os模块的 system函数调用Matlab绘图及保存(26-27句)。从这个例子也可以看出,Python编程语言和其他语言协同工作的能力是比较强的。

  • 相关阅读:
    ytu 2030: 求实数绝对值(水题)
    [PHP] 链表数据结构(单链表)
    PHP将数据写入指定文件中
    PHP获取文件后缀名
    PHP数组序列化和反序列化
    PHP二维数组(或任意维数组)转换成一维数组的方法汇总
    PHP获取文件大小的方法详解
    PHP中嵌套函数被调用时出现报错的问题
    PHP递归排序
    PHP实现简单倒计时
  • 原文地址:https://www.cnblogs.com/jeffkuang/p/2314256.html
Copyright © 2011-2022 走看看