24小时热门版块排行榜    

CyRhmU.jpeg
查看: 733  |  回复: 2

轻铃molly

铜虫 (小有名气)

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eurekayan

荣誉版主 (知名作家)

三沙市名誉市长兼书记

优秀版主

【答案】应助回帖

轻铃molly(金币+1): 不是很明白,不过还是谢谢了~! 2011-10-15 16:29:10
重建一列,然后set  as label,读出切点值输入
xps
2楼2011-10-13 15:46:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FANXH1987

木虫 (著名写手)

SLS

【答案】应助回帖

轻铃molly(金币+1): 试了一下,只弹出一个Attention的对话框,不知道是不是因为我同时有多条切线的原因。谢谢你了! 2011-10-15 16:46:16
做出了切线和拟合的曲线,那就应该有两条线了,可以用originlab提供的一个Lab talk来实现
具体过程:
1.将下面的代码保存为custom.ogs,然后替换origin安装原始位置文件夹里的custom.ogs(不放心可以先保留一个备份)
代码:
// Filename:  Custom.ogs
// Purpose: The Custom Routine button on the standard toolbar will use this code, by calling
// the [Main] section
// Modifications:
[main]

run.section(,init);
run.section(,getdatasets);
run.section(,intersect);

[init]

//////////////////////////////
// Initialize all Variables //
//////////////////////////////

i=1; // init i in getnum
j=2; // init j in getnum

%Z=""; // init %Z to nothing

aa1=1E270; // init aa1 (will hold y int for 1st fit)
bb1=1E270; // init bb1 (will hold slope for 1st fit)

aa2=1E270; // init aa2 (will hold y int for 2nd fit)
bb2=1E270; // init bb2 (will hold slope for 2nd fit)

xint=1E270; // init xint (will hold final x intersection value
yint=1E270; // init yint (will hold final y intersection value

%L=""; // string variable used for intersection label on graph

[getdatasets]

//////////////////////////////
// Get Datasets From User   //
//////////////////////////////

// compile list of available datasets in %Z

doc -e D
{
%Z=%Z %C; // create a list of datasets for getnum by looping
};

// execute getnum to obtain names of curves to compare

getnum
(Dataset 1) i:Z
(Dataset 2) j:Z
(Select Datasets);

[intersect]

/////////////////////////////////////////////
// Calculate and Report Intersection (X,Y) //
/////////////////////////////////////////////

// perform linear regressions on selected datasets
// and calculate the x intersection value and its y value

stat.data$=%[%Z,#i]; // assigns 1st selected dataset for lin reg
stat.lr(); // performs lin reg on 1st selected dataset

aa1=stat.lr.a; // assigns 1st y intercept val to aa1
bb1=stat.lr.b; // assigns 1st slope val to bb1

stat.data$=%[%Z,#j]; // assigns 2nd selected dataset for lin reg
stat.lr(); // performs lin reg on 2nd selected dataset

aa2=stat.lr.a; // assigns 2nd y intercept val to aa2
bb2=stat.lr.b; // assigns 2nd slope val to bb2

xint=(aa2-aa1)/(bb1-bb2); // calculates x intersection value
yint=aa1+(bb1*xint); //calculates corresponding y intersection value

%L="Intersection at: ($(xint), $(yint))";
type %L;
label -a (xint-5) yint -s -n intersection %L;

2.在graph窗口下点击那个类似offie宏默认图标的标签(三个矩形加中间一个菱形的标签,如果没有,在view-tools bar-button group - standard里可以找到,标签提示是:run custom.ogs···,这个标签是用来启用Custom.ogs文件里的内容的,和office自定义宏的用法很像)
3.在弹出的对话框里选择数据源,然后OK
测试只有一个交点时可以实现显示交点,几个交点的情况就不知道了,有个不好的地方时这个lab选择数据好像只能选择整个数据曲线,要是能像date selected功能可以随意选择就好了~~~
你试一下吧!应该可以的(不行也可以给origin增加这个功能,呵呵),祝你成功
有限空间,无限价值!
3楼2011-10-14 15:46:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 轻铃molly 的主题更新
信息提示
请填处理意见