T O P I C R E V I E W |
sperling |
Posted - 06/29/2009 : 09:49:26 AM I'm using Origin 8 SR 5 with XP, and I'm essentially trying to write a LabTalk script that can automate what's described in the tutorial "Fitting One Dataset as a Function of Other Datasets":
http://www.originlab.com/www/helponline/Origin8/en/mergedProjects/Tutorial/Tutorial/Fitting_Datasets.html
So what I think I need is...
range aa=(2,3,4); nlbegin aa MultiIndep tt;
However, I keep getting an error "Please select at least one XYRange."
Is there any way to define multiple X datasets in nlbegin? |
8 L A T E S T R E P L I E S (Newest First) |
sperling |
Posted - 09/02/2009 : 4:42:12 PM I foolishly updated to SR6, and the workaround no longer works.
In Code Builder, the nlbegin line gives me
Some subrange fail to set data. No valid data is set.
Script windows gives me the "Please select at least one XYRange" message I was getting before.
Anyone know of another workaround? |
sperling |
Posted - 07/01/2009 : 11:07:52 AM quote: Originally posted by minimax
The columns order can be a(X) ab(Y) b(X).
Thanks! That should have been obvious. Maybe I need a vacation. |
minimax |
Posted - 07/01/2009 : 10:49:57 AM Hi Sperling,
The clumns order can be a(X) ab(Y) b(X).
Then you should define your range accordingly, such as range aa= (2, 4, 3);
That is to say, the order in the range definition must be XXY.
Max OriginLab Technical Support |
sperling |
Posted - 06/30/2009 : 10:02:11 AM Thanks, Max! Your trick works...mostly.
worksheet -t 2 4; //Change column 2 to X worksheet -t 3 4; //Change column 3 to X worksheet -s 2 0 4 0; //Select columns 2 to 4 range aa = (2,3,4); nlbegin aa MultiIndep tt; tt.C1=1; //Initialization of parameter C1 tt.C2=1; //Initialization of parameter C2 nlfit; worksheet -t 2 1; //Change column 2 back to Y worksheet -t 3 1; //Change column 3 back to Y
The problem now with the worksheet -s 2 0 4 0 line. The columns must be in the order a(X) b(X) ab(Y). Can you think of any other way to make this a bit more flexible in terms of column position/order? |
minimax |
Posted - 06/29/2009 : 10:48:28 PM Hi Sperling,
There is a tricky workaround in SR5.
Before running your script, highlight all your 3 columns and then run your script. (assuming your columns are set with proper designations: X X Y. If not, you should set them manually or use script like worksheet -t 2 4; to set.)
You can also use some LT script like worksheet -s 2 0 4 0; to select columns.
We will try to fix it so that without selection will work too.
Max OriginLab Technical Support |
cpyang |
Posted - 06/29/2009 : 4:51:25 PM sorry, i didnt look up that wiki first. There maybe a bug, we will need to investigate and let you know.
CP
|
sperling |
Posted - 06/29/2009 : 3:05:26 PM Thanks for the reply, but because I have two X's and one Y, your solution doesn't really work.
The equation in the tutorial is...
ab = C1*a + C2*b
I want Col(2) to be my "a", Col(3) to be my "b", and Col(4) to be my "ab". I can do this manually (like the tutorial), but I have not been able to write a LabTalk script. |
cpyang |
Posted - 06/29/2009 : 2:48:00 PM Assuming that you are using col(1) as X for all those, then
range aa=(1,2:4);
should be used to defined multiple XY. Alternatively, you can write
range aa=((1,2),(1,3),(1,4))
CP
|