T O P I C R E V I E W |
a.abc.b35 |
Posted - 11/15/2010 : 9:49:42 PM I have written a fitting routine in origin 8.0. I have 3 parameters to it which are calculated after the best fitting of the model to the experimental data. Now I want to calculate another parameter from these + one result of the routine. Can anyone tell me how to do it ? .. I have tried typing the equation in derived parameters tab but it does not give any result. If I type an equation there with only the input parameters and constants, than I get some result. But I am not able to get anything out if I use a result (stored to a variable) to that equation. Could anyone please help ?
AB |
13 L A T E S T R E P L I E S (Newest First) |
a.abc.b35 |
Posted - 11/23/2010 : 11:31:48 PM By the way, if I use only the following : " #include <Origin.h> void abc () { // enter string string strName = InputBox("Please enter your name", ""); printf("Name is %s.\n", strName); } " i.e., exclude the numeric part, it works just fine !!
AB |
a.abc.b35 |
Posted - 11/23/2010 : 11:29:32 PM I copied the above code and made the function. It works just fine !!
AB |
Iris_Bai |
Posted - 11/22/2010 : 10:13:27 PM quote: Originally posted by a.abc.b35
Hi there. I can't find Script after fitting in my version of origin 8.0 Pro. May be its not there. Does not matter. We can leave that. I liked the InputBox global function for data input from user. I went to the link Iris posted and than wrote the following code in a file : "#include <Origin.h> void abc () { // enter string string strName = InputBox("Please enter your name", ""); printf("Name is %s.\n", strName); // enter numeric double dVal = InputBox(0, "Please enter a value"); printf("Value is %g.\n", dVal); }" When I compile it, I get errors : "compiling... abc.c C:\..\abc.c(33) :Error, cannot convert argument in function call C:\..\abc.c(40) :Error, cannot convert argument in function call C:\..\abc.c(40) :Error, general compile error C:\..\abc.c(33) :Error, error(s) found in compiling function abc
Compiling errors found, linking cannot start!"
... I am kind of lost here. Could you please point out if I am doing anything wrong !
AB
Hi,
I copied the above abc function to one c file in Origin Code Builder, and then compile, no compiling and linking error, see: compiling... test.c Linking... Done!
Could you try to compile a very simple function?
#include <Origin.h>
void testok()
{
out_str("Just a test");
}
If also failed, I guess your Origin is bad? Need to repair install Origin again.
Iris |
a.abc.b35 |
Posted - 11/22/2010 : 3:57:42 PM If I use only the string part, it works. But for the numeric part, the error is still there.
AB |
a.abc.b35 |
Posted - 11/22/2010 : 11:28:17 AM @ Larry, I have dropped the idea of derived parameters. So don't worry about it. And its a long code. We can forget about that !!!
AB |
a.abc.b35 |
Posted - 11/22/2010 : 11:26:42 AM Hi there. I can't find Script after fitting in my version of origin 8.0 Pro. May be its not there. Does not matter. We can leave that. I liked the InputBox global function for data input from user. I went to the link Iris posted and than wrote the following code in a file : "#include <Origin.h> void abc () { // enter string string strName = InputBox("Please enter your name", ""); printf("Name is %s.\n", strName); // enter numeric double dVal = InputBox(0, "Please enter a value"); printf("Value is %g.\n", dVal); }" When I compile it, I get errors : "compiling... abc.c C:\..\abc.c(33) :Error, cannot convert argument in function call C:\..\abc.c(40) :Error, cannot convert argument in function call C:\..\abc.c(40) :Error, general compile error C:\..\abc.c(33) :Error, error(s) found in compiling function abc
Compiling errors found, linking cannot start!"
... I am kind of lost here. Could you please point out if I am doing anything wrong !
AB |
larry_lan |
Posted - 11/22/2010 : 01:59:46 AM Hi:
In your first post, you said:
quote: I have tried typing the equation in derived parameters tab but it does not give any result
Could you please show us how you defined the derived parameters? And how you defined your fitting function?
Regarding the question
quote: I want only one output line,with the value of A at the end of the simulation
Maybe you can output the value in "Script After Fitting"? For example, Suppose your fitting function is:
void _nlsfMyLine(
// Fit Parameter(s):
double a, double b,
// Independent Variable(s):
double x,
// Dependent Variable(s):
double& y)
{
// Beginning of editable part
y = a + b*x;
// Put the value of a into LabTalk Global variable, MyFittedA
LT_set_var("MyFittedA", a);
// End of editable part
} Then you can type the following script in "Script After Fitting" edit box:
MyFittedA = ;
Thanks Larry OriginLab |
Iris_Bai |
Posted - 11/22/2010 : 12:43:54 AM quote: Originally posted by a.abc.b35
One more thing, Iris...hope you can help. ... I have used the code builder to write a code. But I want to user input,on prompt,some parameters to it. I wanted to use 'cin' and 'cout' by including 'iostream' at the top for data input and output. But it says that the include file 'iostream' is not available !!! ... So what shall be the work around ? I understand that iostream is not included with origin. But than how do i prompt the user for inputs ? I can surely use 'printf' for output,as I have done here,based on your suggestion.
AB
Hi,
May be you can use InputBox function, this is an overloaded function to input double type numeric or text.
double InputBox( double dDefault, LPCSTR lpcszMsg = NULL )
string InputBox( LPCSTR lpcszMsg, LPCSTR lpcszDeault = NULL, DWORD dwOption = 0 )
There are other simple useful dialogs in Origin C, see http://ocwiki.originlab.com/index.php?title=OCGuide:Common_Dialog_Boxes
Iris |
a.abc.b35 |
Posted - 11/22/2010 : 12:29:37 AM One more thing, Iris...hope you can help. ... I have used the code builder to write a code. But I want to user input,on prompt,some parameters to it. I wanted to use 'cin' and 'cout' by including 'iostream' at the top for data input and output. But it says that the include file 'iostream' is not available !!! ... So what shall be the work around ? I understand that iostream is not included with origin. But than how do i prompt the user for inputs ? I can surely use 'printf' for output,as I have done here,based on your suggestion.
AB |
a.abc.b35 |
Posted - 11/21/2010 : 9:49:22 PM I have included the following in the code: 1) static int count = 0; // before the "_nlsf" part just below "#pragma warning(error : 15618) #include <origin.h> #include <oc_nag8.h>" (i need the nag library as i am using an integrator from their to calculate my parameters) .. 2)Then inside "_nlsf" ,just before the last line, i have included the following : "printf("Index:%d A = %f\n", count++, A);"
... When I compile the code, it compiles perfectly. But when I go to the simulate curve part,nothing will show up (which use to show up without the above code) and in the script window i see the message : "Static variables are not allowed in pre-compiled headers" (this line repeats a lot of times!!!) ... instead if I put both step 1) and 2) inside the "_nlsf" part,compile,and simulate, I get the following (the simulation is using 100 X points !): " Index:0 A = 0.143846" and this goes upto 100th line with " Index:99 A = 0.143846". If I simulate again,it'll repeat the same from Index = 100 to Index = 199 (it is clearly equal to the number of X points in the simulation) . If there is 3 X points,the index will go from 0 to 2 (say) .. I want only one output line,with the value of A at the end of the simulation, or fitting, whichever I am doing. Is it possible to do it Iris ? Please help.
AB |
a.abc.b35 |
Posted - 11/21/2010 : 8:51:29 PM Thanks for the help. It worked one time but than it gives me the following error : "Static Variables are not allowed in pre-compiled headers" .... How do I solve it ?
AB |
Iris_Bai |
Posted - 11/16/2010 : 05:10:58 AM Hi,
static int count = 0; // put this define outside _nlsf function
// put the following code inside function to print out the value of parameter A and B
printf("Index:%d A=%f, B=%f\n", count++, A, B);
Please keep Scirpt Window is open. Choose menu Window -> Script Window to open it. The result will be outputed to this window.
Iris |
a.abc.b35 |
Posted - 11/15/2010 : 11:27:45 PM to add, i simply want to print the value of some parameters calculated inside the routine ? In c, printf and vprintf is supposed to work but I dont know how to use these or something else to extract the result from the routin . can someone please help quickly ?
AB |
|
|