How to find a smallest value in a list?
I have a list of point2d coordinate {x,y}. I would like to find the point where x is the smallest. How can I do it in Mathematica?
list-manipulation
add a comment |
I have a list of point2d coordinate {x,y}. I would like to find the point where x is the smallest. How can I do it in Mathematica?
list-manipulation
3
point2d[[Ordering[point2d, 1][[1]]]]
– Henrik Schumacher
11 hours ago
4
Take a look at MinimalBy
– Kuba♦
11 hours ago
2
First@Sort@point2d
– Okkes Dulgerci
10 hours ago
add a comment |
I have a list of point2d coordinate {x,y}. I would like to find the point where x is the smallest. How can I do it in Mathematica?
list-manipulation
I have a list of point2d coordinate {x,y}. I would like to find the point where x is the smallest. How can I do it in Mathematica?
list-manipulation
list-manipulation
asked 11 hours ago
N.T.C
28517
28517
3
point2d[[Ordering[point2d, 1][[1]]]]
– Henrik Schumacher
11 hours ago
4
Take a look at MinimalBy
– Kuba♦
11 hours ago
2
First@Sort@point2d
– Okkes Dulgerci
10 hours ago
add a comment |
3
point2d[[Ordering[point2d, 1][[1]]]]
– Henrik Schumacher
11 hours ago
4
Take a look at MinimalBy
– Kuba♦
11 hours ago
2
First@Sort@point2d
– Okkes Dulgerci
10 hours ago
3
3
point2d[[Ordering[point2d, 1][[1]]]]
– Henrik Schumacher
11 hours ago
point2d[[Ordering[point2d, 1][[1]]]]
– Henrik Schumacher
11 hours ago
4
4
Take a look at MinimalBy
– Kuba♦
11 hours ago
Take a look at MinimalBy
– Kuba♦
11 hours ago
2
2
First@Sort@point2d
– Okkes Dulgerci
10 hours ago
First@Sort@point2d
– Okkes Dulgerci
10 hours ago
add a comment |
1 Answer
1
active
oldest
votes
Initializing some test data:
pts = RandomReal[100, {10, 2}];
Kuba's suggestion in the comments is this:
MinimalBy[pts, First]
{{31.2859, 50.9165}}
and here is a piece of code that captures the idea of Henrik's suggestion:
First@SortBy[pts, First]
{31.2859, 50.9165}
In other programming languages, we might have written a for loop and made a variable keep track of the smallest x coordinate so far. In Mathematica, we can also use loops but we try to stay away from it. If we were to implement that kind of solution in Mathematica, it would look like this instead:
min[pt1_, pt2_] := If[First[pt1] < First[pt2], pt1, pt2]
Fold[min, pts]
{31.2859, 50.9165}
Another pattern that one can see sometimes is to get the smallest value, get the position of the smallest value, and then extract that position from the original list:
minVal = pts[[All, 1]] // Min;
pos = Position[pts, {minVal, _}];
Extract[pts, pos]
{{31.2859, 50.9165}}
Note that I use Extract
instead of Part
to get the element, it's useful to remember that Extract
works well with the type of output that Position
gives. We could not have used Part
to extract this information without first transforming the expression that Position
gave.
I recommend the simplest approaches, i.e. one of the first two presented above. Most of all I recommend MinimalBy
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188640%2fhow-to-find-a-smallest-value-in-a-list%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Initializing some test data:
pts = RandomReal[100, {10, 2}];
Kuba's suggestion in the comments is this:
MinimalBy[pts, First]
{{31.2859, 50.9165}}
and here is a piece of code that captures the idea of Henrik's suggestion:
First@SortBy[pts, First]
{31.2859, 50.9165}
In other programming languages, we might have written a for loop and made a variable keep track of the smallest x coordinate so far. In Mathematica, we can also use loops but we try to stay away from it. If we were to implement that kind of solution in Mathematica, it would look like this instead:
min[pt1_, pt2_] := If[First[pt1] < First[pt2], pt1, pt2]
Fold[min, pts]
{31.2859, 50.9165}
Another pattern that one can see sometimes is to get the smallest value, get the position of the smallest value, and then extract that position from the original list:
minVal = pts[[All, 1]] // Min;
pos = Position[pts, {minVal, _}];
Extract[pts, pos]
{{31.2859, 50.9165}}
Note that I use Extract
instead of Part
to get the element, it's useful to remember that Extract
works well with the type of output that Position
gives. We could not have used Part
to extract this information without first transforming the expression that Position
gave.
I recommend the simplest approaches, i.e. one of the first two presented above. Most of all I recommend MinimalBy
.
add a comment |
Initializing some test data:
pts = RandomReal[100, {10, 2}];
Kuba's suggestion in the comments is this:
MinimalBy[pts, First]
{{31.2859, 50.9165}}
and here is a piece of code that captures the idea of Henrik's suggestion:
First@SortBy[pts, First]
{31.2859, 50.9165}
In other programming languages, we might have written a for loop and made a variable keep track of the smallest x coordinate so far. In Mathematica, we can also use loops but we try to stay away from it. If we were to implement that kind of solution in Mathematica, it would look like this instead:
min[pt1_, pt2_] := If[First[pt1] < First[pt2], pt1, pt2]
Fold[min, pts]
{31.2859, 50.9165}
Another pattern that one can see sometimes is to get the smallest value, get the position of the smallest value, and then extract that position from the original list:
minVal = pts[[All, 1]] // Min;
pos = Position[pts, {minVal, _}];
Extract[pts, pos]
{{31.2859, 50.9165}}
Note that I use Extract
instead of Part
to get the element, it's useful to remember that Extract
works well with the type of output that Position
gives. We could not have used Part
to extract this information without first transforming the expression that Position
gave.
I recommend the simplest approaches, i.e. one of the first two presented above. Most of all I recommend MinimalBy
.
add a comment |
Initializing some test data:
pts = RandomReal[100, {10, 2}];
Kuba's suggestion in the comments is this:
MinimalBy[pts, First]
{{31.2859, 50.9165}}
and here is a piece of code that captures the idea of Henrik's suggestion:
First@SortBy[pts, First]
{31.2859, 50.9165}
In other programming languages, we might have written a for loop and made a variable keep track of the smallest x coordinate so far. In Mathematica, we can also use loops but we try to stay away from it. If we were to implement that kind of solution in Mathematica, it would look like this instead:
min[pt1_, pt2_] := If[First[pt1] < First[pt2], pt1, pt2]
Fold[min, pts]
{31.2859, 50.9165}
Another pattern that one can see sometimes is to get the smallest value, get the position of the smallest value, and then extract that position from the original list:
minVal = pts[[All, 1]] // Min;
pos = Position[pts, {minVal, _}];
Extract[pts, pos]
{{31.2859, 50.9165}}
Note that I use Extract
instead of Part
to get the element, it's useful to remember that Extract
works well with the type of output that Position
gives. We could not have used Part
to extract this information without first transforming the expression that Position
gave.
I recommend the simplest approaches, i.e. one of the first two presented above. Most of all I recommend MinimalBy
.
Initializing some test data:
pts = RandomReal[100, {10, 2}];
Kuba's suggestion in the comments is this:
MinimalBy[pts, First]
{{31.2859, 50.9165}}
and here is a piece of code that captures the idea of Henrik's suggestion:
First@SortBy[pts, First]
{31.2859, 50.9165}
In other programming languages, we might have written a for loop and made a variable keep track of the smallest x coordinate so far. In Mathematica, we can also use loops but we try to stay away from it. If we were to implement that kind of solution in Mathematica, it would look like this instead:
min[pt1_, pt2_] := If[First[pt1] < First[pt2], pt1, pt2]
Fold[min, pts]
{31.2859, 50.9165}
Another pattern that one can see sometimes is to get the smallest value, get the position of the smallest value, and then extract that position from the original list:
minVal = pts[[All, 1]] // Min;
pos = Position[pts, {minVal, _}];
Extract[pts, pos]
{{31.2859, 50.9165}}
Note that I use Extract
instead of Part
to get the element, it's useful to remember that Extract
works well with the type of output that Position
gives. We could not have used Part
to extract this information without first transforming the expression that Position
gave.
I recommend the simplest approaches, i.e. one of the first two presented above. Most of all I recommend MinimalBy
.
edited 10 hours ago
answered 10 hours ago
C. E.
49.8k396201
49.8k396201
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188640%2fhow-to-find-a-smallest-value-in-a-list%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
point2d[[Ordering[point2d, 1][[1]]]]
– Henrik Schumacher
11 hours ago
4
Take a look at MinimalBy
– Kuba♦
11 hours ago
2
First@Sort@point2d
– Okkes Dulgerci
10 hours ago