How to select specific percentage of items from a vector in matlab?











up vote
0
down vote

favorite












I have used datasample() and randsample() to select specific no. of items randomly from a vector. But I have to specify the no. of items explicitly. Is there any way to specify percentage instead?










share|improve this question


















  • 3




    Why can't you do n = floor(% * N), where n is the number of items you have to specify, % is the percentage you want, and N is the total number of elements in the vector? This seems pretty straightforward...
    – Wolfie
    Nov 10 at 12:19










  • @Wolfie thanks it worked, please post it as answer so that I may mark it correct
    – Talha Yousuf
    Nov 10 at 13:32















up vote
0
down vote

favorite












I have used datasample() and randsample() to select specific no. of items randomly from a vector. But I have to specify the no. of items explicitly. Is there any way to specify percentage instead?










share|improve this question


















  • 3




    Why can't you do n = floor(% * N), where n is the number of items you have to specify, % is the percentage you want, and N is the total number of elements in the vector? This seems pretty straightforward...
    – Wolfie
    Nov 10 at 12:19










  • @Wolfie thanks it worked, please post it as answer so that I may mark it correct
    – Talha Yousuf
    Nov 10 at 13:32













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have used datasample() and randsample() to select specific no. of items randomly from a vector. But I have to specify the no. of items explicitly. Is there any way to specify percentage instead?










share|improve this question













I have used datasample() and randsample() to select specific no. of items randomly from a vector. But I have to specify the no. of items explicitly. Is there any way to specify percentage instead?







matlab






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 10 at 12:06









Talha Yousuf

203




203








  • 3




    Why can't you do n = floor(% * N), where n is the number of items you have to specify, % is the percentage you want, and N is the total number of elements in the vector? This seems pretty straightforward...
    – Wolfie
    Nov 10 at 12:19










  • @Wolfie thanks it worked, please post it as answer so that I may mark it correct
    – Talha Yousuf
    Nov 10 at 13:32














  • 3




    Why can't you do n = floor(% * N), where n is the number of items you have to specify, % is the percentage you want, and N is the total number of elements in the vector? This seems pretty straightforward...
    – Wolfie
    Nov 10 at 12:19










  • @Wolfie thanks it worked, please post it as answer so that I may mark it correct
    – Talha Yousuf
    Nov 10 at 13:32








3




3




Why can't you do n = floor(% * N), where n is the number of items you have to specify, % is the percentage you want, and N is the total number of elements in the vector? This seems pretty straightforward...
– Wolfie
Nov 10 at 12:19




Why can't you do n = floor(% * N), where n is the number of items you have to specify, % is the percentage you want, and N is the total number of elements in the vector? This seems pretty straightforward...
– Wolfie
Nov 10 at 12:19












@Wolfie thanks it worked, please post it as answer so that I may mark it correct
– Talha Yousuf
Nov 10 at 13:32




@Wolfie thanks it worked, please post it as answer so that I may mark it correct
– Talha Yousuf
Nov 10 at 13:32












1 Answer
1






active

oldest

votes

















up vote
2
down vote













You can very easily convert between the percentage of data you want, and the number which is required by the functions you want to use...



n = floor( pct * N );


Where n is the number of items you have to specify, pct is the percentage you want to input (between 0 and 1), and N is the total number of elements in the vector.



You could use a different rounding function to floor (ceil/round), but floor is a good go-to so that you protect against requesting n > N elements due to numerical error or otherwise.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    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',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    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%2fstackoverflow.com%2fquestions%2f53238772%2fhow-to-select-specific-percentage-of-items-from-a-vector-in-matlab%23new-answer', 'question_page');
    }
    );

    Post as a guest
































    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    2
    down vote













    You can very easily convert between the percentage of data you want, and the number which is required by the functions you want to use...



    n = floor( pct * N );


    Where n is the number of items you have to specify, pct is the percentage you want to input (between 0 and 1), and N is the total number of elements in the vector.



    You could use a different rounding function to floor (ceil/round), but floor is a good go-to so that you protect against requesting n > N elements due to numerical error or otherwise.






    share|improve this answer

























      up vote
      2
      down vote













      You can very easily convert between the percentage of data you want, and the number which is required by the functions you want to use...



      n = floor( pct * N );


      Where n is the number of items you have to specify, pct is the percentage you want to input (between 0 and 1), and N is the total number of elements in the vector.



      You could use a different rounding function to floor (ceil/round), but floor is a good go-to so that you protect against requesting n > N elements due to numerical error or otherwise.






      share|improve this answer























        up vote
        2
        down vote










        up vote
        2
        down vote









        You can very easily convert between the percentage of data you want, and the number which is required by the functions you want to use...



        n = floor( pct * N );


        Where n is the number of items you have to specify, pct is the percentage you want to input (between 0 and 1), and N is the total number of elements in the vector.



        You could use a different rounding function to floor (ceil/round), but floor is a good go-to so that you protect against requesting n > N elements due to numerical error or otherwise.






        share|improve this answer












        You can very easily convert between the percentage of data you want, and the number which is required by the functions you want to use...



        n = floor( pct * N );


        Where n is the number of items you have to specify, pct is the percentage you want to input (between 0 and 1), and N is the total number of elements in the vector.



        You could use a different rounding function to floor (ceil/round), but floor is a good go-to so that you protect against requesting n > N elements due to numerical error or otherwise.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 10 at 13:37









        Wolfie

        14.4k51741




        14.4k51741






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238772%2fhow-to-select-specific-percentage-of-items-from-a-vector-in-matlab%23new-answer', 'question_page');
            }
            );

            Post as a guest




















































































            Popular posts from this blog

            Full-time equivalent

            Bicuculline

            さくらももこ