欢迎光临散文网 会员登陆 & 注册

origin批处理方法实例

2023-02-26 20:20 作者:江上澄星  | 我要投稿

需求是将已有的多组矩阵数据批量导入origin,并逐个生成contour profile图。

数据格式(例)

数据格式是这样的,x轴数据在第一行,4-6,y轴数据在第一列,10-30,其他行列是矩阵元素。

如果手动导入,步骤是先导入ASCII文件,再将工作表转换为矩阵,最后点击画图生成contour profile图。使用origin脚本导入将使用同样的思路:

第一步,批量导入ACSII文件(参见Origin在线帮助 - General Importing Examples 或者 Importing Data,在这里能找到一个可以直接运行的实例)

文件目录为D:\Samples\,共有3个文件,文件名分别为Material_10K, Material_20K, Material_30K,因此使用含通配符的名称 Material_*K 来表示所有文件;

程序中string、int是数据类型,字符串变量名以$结尾;

findfiles、newbook、impasc是origin中的函数X-Function,使用方法为 “函数名(空格)变量名 := 变量值”。每个函数可使用的所有变量都能够在对应的在线帮助文档中搜索到。

[bkName$]1!这种以中括号和感叹号为特征的形式是origin中表示元素的标记方式,详见Help - Output Notations。对于工作簿,完整标记形式是[工作簿名]工作表名或索引!列名或索引。例如,

注意工作簿名只能引用其Short Name。


第二步,创建contour profile图

首先,创建一个图表的函数是plotvm

(这个函数通过创建一个虚拟矩阵VM1的方式由工作表生成图,虚拟矩阵不会出现在工作窗口中,省略掉了从工作表生成矩阵表的步骤。如果需要矩阵表,可以连用函数w2m和plotm代替plotvm。)

这里的<new template:=TemplateName>! 也是一种模板元素标记,亦可见Output Notations。

按照ogl参数的选择,此时生成的图是contour图。若要生成contour profile图,按照直观的理解,应该将ogl参数中的contour替换为

但是这样绘制出的却是只有一个图层的、位于左下角的contour图。

为了解决这个问题,需要先使用任意Mbook绘制一份contour profile图,再右键该图的标题栏,选择保存模板为...(save template as...),在默认的用户文件目录下保存一份profile_contour_user.otp文件,之后就可以使用命令

创建所需的contour profile。


第三步,为以上程序增加循环结构,实现批处理

origin脚本基础程序结构参见Help - Conditional and Loop Structures,其中循环结构为

将这些部分整合到一起,就能够得到从txt文件导出contour profile的完整程序

其中 win -o 是为了激活存储数据的工作表,因为大多数函数只能作用于处于活动状态的表。详细用法参阅 Help - Window。

$( )是数字转字符串标记,参见 Help - Converting Numbers to Strings

wks.name$ 是对象“当前工作表”的名称属性,参见 Help - Basic Worksheet Operation及Wks


全部完成后可以将代码保存为 file.ogs文件,之后就可以在Origin的命令行窗口中通过命令

运行。(Help - Running Scripts - From Files)

其他内容

工作簿Workbook相关 (help-Basic Worksheet Operation)

工作表worksheet相关 (help-Worksheet Basic Operation)

运行结果


后记

Origin 的在线帮助文档详细全面,但不利于查阅,使用时善用搜索。本文使用的方法集中在 X-Function 和 LabTalk Programming 中,优点是可以直接在命令行窗口运行,不需要配置环境。与 Origin C 不兼容。


origin批处理方法实例的评论 (共 条)

分享到微博请遵守国家法律