The Origin Forum
File Exchange
Try Origin for Free
The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
Username:
Password:
Save Password
Forgot your Password? | Admin Options

 All Forums
 Origin Forum
 Origin Forum
 MAX/MIN choice
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic Lock Topic Edit Topic Delete Topic New Topic Reply to Topic

bjorn

Gothenburg, Sweden
18 Posts

Posted - 04/17/1999 :  7:50:00 PM  Show Profile  Edit Topic  Reply with Quote  View user's IP address  Delete Topic
Hi,
I need to choose the highest or lowest number respectivly, from some variables (more than two). I can't find any standard function to perform this choice but to use the conditional operator: expression?var1,var2; over again!
Is there any better solution to do this if I have eg. 10 variables to choose between?

Thanks in advance,
Bjorn

bjorn

Gothenburg, Sweden
18 Posts

Posted - 04/22/1999 :  2:32:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply
Hi Ryan

perhaps I was a bit unclear in my question. What Im looking for is a method to chosse between a number of values, assigned inside a Labtalk script. Let's say that I have three functions, funcA,funcB and funcC, that is calculated in my script and I want to have the value from whichever is the highest one as an output. In basic I would do this by MAX(funcA,funcB,funcC). If I have eg. 5 functions to choose between it is not so effective to make this choice by a series of if-commands!

Regards,
Bjorn

Go to Top of Page

rtoomey

USA
184 Posts

Posted - 04/22/1999 :  7:38:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply


Response to MAX/MIN choice


Bjorn,


Although I am not exactly sure what you mean by variables, I can offer you a suggestion based on my current understanding of your request:


It is possible to obtain the maximum and/or minimum value of any datasets by accessing the sum.min and sum.max object properties. To do so, you must first execute the sum(dataset) function on the dataset of interest. Just to let you know, selecting Analysis:Statistics on Columns runs the sum(dataset) function automatically (on the selected dataset(s) or range of selected dataset(s)).


If this information is not what you were looking for, please reply to this post and describe your situation in more detail. Perhaps then I will understand your situation better and can offer a more appropriate solution.


Sincerely,


Ryan Toomey



Go to Top of Page

rtoomey

USA
184 Posts

Posted - 05/03/1999 :  7:08:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply


Follow-up to Mike Buess's response to MAX/MIN choice


Mike,


Thanks for the suggestion!


Bjorn,


In the hopes of making this task easier for you in the future, I have entered a suggestion in our database to add a MAX( ) function. I have included your name and e-mail address in case the developers need to contact you for further information. However, I expect that such a new feature will not be added to our upcoming release (Origin 6.0 - due out in mid-May) since it is so close to the release date.


Sincerely,
Ryan Toomey
Technical Support Engineer
Microcal Software, Inc.



Go to Top of Page

Mike Buess

USA
3037 Posts

Posted - 05/03/1999 :  7:50:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply
Hi Bjorn,

Ryan's suggestion might still work for you if you create the data set results={funcA,funcB,funcC}. Use sum(results) to get the maximum (as sum.max) and minimum (as sum.min) values.

If you have a lot of functions, or if you're concerned about which of them actually yield the minimum and maximum values, it would be more convenient to name them func1, func2, func3, etc., rather than funcA, funcB, funcC. The following simple script uses the limit command instead of the sum function, because it also gives the indices of the minimum and maximum data set values. I've assumed that all functions have the single independent variable, var, but you should be able to extend it to any number of variables. Note: the limit command will change the values of x and y, so be careful about using them for your variable names in this example.

/* first create a temporary data set with N elements */
N=10; /* the number of functions */
results=data(1,N);

/* now fill that data set with the function results */
var=3; /* the variable value */
for(i=1;i<=N;i++) results[i]=func$(i)(var);

/* find and report the values you want */
limit results;
del results;
type "max: func$(limit.imax)($(var))=$(limit.ymax)";
type "min: func$(limit.imin)($(var))=$(limit.ymin)";

The response in the script window should look something like this,
max: func2(3)=10
min: func9(3)=0

I hope this helps,
Mike Buess

Go to Top of Page

Barb Tobias

USA
305 Posts

Posted - 10/24/2000 :  3:40:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply
There are Release Notes available for each Origin patch (as well as each product release). I recommend you skim through the Release Notes when you apply a patch. Particularly, if you program with LabTalk, the Release Notes should be useful.
The min( ) and max( ) functions were documented in the Release Notes for 6.0 SR2, SR3, and SR4 - and as Mike notes, they are documented in the 6.1 LabTalk Help file.
For future Release Notes, we'll organize the LabTalk information better so that it will be easier to find LabTalk updates and changes.

Go to Top of Page

Mike Buess

USA
3037 Posts

Posted - 10/24/2000 :  8:09:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply
Jose,

The max() and min() functions are finally documented in Origin 6.1 and they do exactly what you describe. This is the description of max() in the Origin 6.1 LabTalk help file:

max(values)
Returns the maximum value from a set of values. Can take up to 10 arguments. For example, y=max(1,2,3,4,5,6).

-Mike

Go to Top of Page

Jose

Netherlands
93 Posts

Posted - 10/24/2000 :  8:22:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply
Such functions, max() and min(), seem to be included in my Origin 6.0 SR2, although not reported anywhere. They return the maximum or minimum of a list of numbers, but they don't work with datasets the way sum() or limit do. This is,

max(1,2,3,4)=;
min(1,2,3,4)=;

returns 4 and 1 respectively, but typing

max(Data1_a)=;

simply returns the first value of that dataset.

I found this just trying...

j.

Go to Top of Page

Jose

Netherlands
93 Posts

Posted - 10/24/2000 :  12:20:00 PM  Show Profile  Edit Reply  Reply with Quote  View user's IP address  Delete Reply
Are there more 'easter eggs' like this in Origin 6.0? Any other functionality not documented that could be of very use, and that would make an user think about updating to 6.1 when it is not strictly necessary, as what he/she wants is already in 6.0? Does anyone knows? :-) Just as a curiosity...

j.

Go to Top of Page
  Previous Topic Topic Next Topic Lock Topic Edit Topic Delete Topic New Topic Reply to Topic
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
The Origin Forum © 2020 Originlab Corporation Go To Top Of Page
Snitz Forums 2000