Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: 实战origin---数据的处理,转换与生成
发信站: BBS 哈工大紫丁香站 (Thu Jul 8 16:34:12 2004)
发信站: 日月光华
我们得到的原始数据可能不是我们最终想要作图的数据。一般我们可以把原始数据导
入excel,然后在excel里进行加加减减乘乘除除,得到我们想要的数据后,再copy到
excel的work sheet中,最后作图。
或者在origin里面的工具栏上有一个open excel的按钮,直接打开excel,然后处理
数据,再利用excel表格里的数据直接作图,在excel窗口激活状态下,菜单栏->plot
,再选中excel表格中的要做X的列,点击select data for plotting 的窗口中X按钮
Y轴选择方法同上。最后点plot。不过这样太耗资源。
其实origin里的work sheet本身就具有部分excel的功能,一些操作完全可以在
work sheet中进行,免得打开excel占用系统资源。下面简单介绍几个操作。
1.导入txt数据
菜单栏中的file->import中的sigle ASCII或mutli ASCII都可以导入文件,一个是
导入单个文本,一个是导入多个文本。可以通过ASCII options修改一些导入的设置。
2.原始数据通过计算生成需要的一列数值
excel中只要在一个表格里输入等号然后是相应的计算函数再回车就ok了,然后一拖
一列。
一列。
origin中不是这样,例如原始数据有两列数,想得到第三列数C为B的开根号减0.5
A B
1 10
2 20
3 30
4 40
先点右键,add new column生成一个新列。右键点新列的标题(选中这一列)->
set column values...这时回跳出一个对话框。在col(C)=的框框中默认的是col(A)-
col(B),也就是列A减列B的值,我们把它删掉。
在add function的下来菜单中选sqrt(),点Add function,然后下面回出现sqrt(),
光标停在括号里面,再 在add column下拉菜单中我们选col(b),然后点add column按
钮,会看到sqrt的括号里多了col(B),最后再sqrt(col(B))的后面添上-0.5,变成
sqrt(col(B))-0.5,看看for row那两个筐里的数是不是你想要算的初始和终止行
不是的话就改成正确的。最后点ok。会发现work sheet表变为
A B C
1 10 2.66
2 20 3.97
3 30 4.97
4 40 5.08
4 40 5.08
此外还可以生成一些列随机数,或归一化的随机数,选中该列,菜单栏->column->
fill column with->rownumbers(把行号添进来),uniform randon numbers,和
normal random number.
2.排序
右键选中要排序的列,sort column(只对改选中列排序,其他列不变)
sort worksheet(所有列均按选中列排序)
3.统计
右键选中列,nomalize归一化,frequency计算出现次数。
4.自动生成等差数列作为X轴
有些实验数据它只给你一些列Y轴坐标,不给你X值(比如分析测试中心的多晶X衍射,
它只给你一系列角度的衍射光强,角度是从5度开始以0.02度增长,但是没给你。)
下面据个例子,有一系列Y值,其X值分别对应1,1.5,2,2.5,3,.......
A(Y)
10
20
25
30
10
35
50
...
...
首先worksheet中必须没有x轴(也就是每列的标题的括号里的字母不能是X),如果有的
话,右键该列标题->set as->Y或者Z,这时左键单击作为Y轴那列的标题,选中该列,
菜单栏->format->set worksheet x...-> initial是起始值,increament是增长步长。
这是看到worksheet中该列标题多了个三角标示。点菜单栏plot->line->A做Y轴,X
空着,点OK,会看到出来的图自动给你加上了横坐标,并且是每个点相隔固定步长。
--
╔═══════════════════╗
║★★★★★友谊第一 比赛第二★★★★★║
╚═══════════════════╝
※ 来源:·哈工大紫丁香 http://bbs.hit.edu.cn·[FROM: 202.118.229.*]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.724毫秒