在Python编程语言的应用的过程中,如果你想通过Python编程语言调用Matlab绘制保存数据,你可以参考我们以下的文章对其有一个详细的了解,以下是文章的的主要内容。望你能有所收获。
调用Matlab绘制保存数据
最近我做实验时需要把得到的数据用Matlab绘图并保存下来。一个小问题是原始的数据文件中不仅有数据还有一些注释的部分(注释部分在数据之前,每行以#开头)。直接用Matlab绘图比较麻烦,因为不能直接处理数据,所以或者要把数据单独提取出来,另存成一个文件。
或者就要用Matlab写一个过滤文本的程序。不过Matlab处理文本并不是它的强项。 所以这两个办法我都不很满意。Python再次给我提供了解决的方案。一方面Python编程语言具有很强的文本处理能力,另一方面Python对Matlab这种交互式的程序提供了直接调用的的途径,所以写一个Python脚本来完成这一任务无疑是比较合适的。下面是实现的代码:
- import os
- import string
- 1filepath = "d:\\\\exp\\\\chgeff_lar_1"
- 2filename="chgeff_lar_1"
- 3id = open(filepath, 'r')
- 4lines = fid.readlines()
- 5fid.close()
- 6x = []; y = []
- 7for line in lines:
- 8if line[0]=="#" or len(line)==1:
- 9continue
- 10else:
- 11xval, yval = string.split(line)
- 12x.append(float(xval))
- 13y.append(float(yval))
- 14id = open(filename+'.m', 'w')
- 15fid.write("""
- 16x = %s
- 17y = %s
- 18plot(x, y)
- 19xlabel('Particle diameter (nm)')
- 20ylabel('Charging efficiency')
- 21print -deps %s.eps
- 22pause(10)
- 23""" % (x, y, filename))
- 24fid.write("exit")
- 25fid.close()
- 26cmd = "d:\\\\matlab6p5\\\\bin\\\\win32\\\\matlab.exe -nodesktop -r " + filename
- 27os.system(cmd)
|
以上6-13句实现两个功能,一是过滤文本(8-9句),通过检查每一行的第一个字符及行的长度,把注释行和空行给去掉。二是把读到的每一行数据自动分配到两个变量x,y中(10-13句)。然后Python把一组Matlab代码(16-24句)写到文件filename.m中。最后利用os模块的system函数调用Matlab绘图及保存(26-27句)。从这个例子也可以看出,Python编程语言和其他语言协同工作的能力是比较强的。
【编辑推荐】
- Python正则表达式十种相关的匹配方法
- Python字符串替换如何才能进行字符的拆分
- Python文本乱码发生时的解决方案
- Python编程语言总体性能优点评测
- Python编程语言具有相当高的适应能力