How to find a smallest value in a list?












2














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?










share|improve this question


















  • 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
















2














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?










share|improve this question


















  • 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














2












2








2


2





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?










share|improve this question













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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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














  • 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










1 Answer
1






active

oldest

votes


















6














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.






share|improve this answer























    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    6














    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.






    share|improve this answer




























      6














      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.






      share|improve this answer


























        6












        6








        6






        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.






        share|improve this answer














        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.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 10 hours ago

























        answered 10 hours ago









        C. E.

        49.8k396201




        49.8k396201






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Understanding the information contained in the Deep Space Network XML data?

            Ross-on-Wye

            Eastern Orthodox Church