Find the identical rows in a matrixHow to find rows that have maximum value?How to do equality check of a...

How can I practically buy stocks?

How to not starve gigantic beasts

Does the damage from the Absorb Elements spell apply to your next attack, or to your first attack on your next turn?

Why is the underscore command _ useful?

What does a straight horizontal line above a few notes, after a changed tempo mean?

Is Diceware more secure than a long passphrase?

Work requires me to come in early to start computer but wont let me clock in to get paid for it

Is there any pythonic way to find average of specific tuple elements in array?

A Paper Record is What I Hamper

Should the Product Owner dictate what info the UI needs to display?

Nails holding drywall

NPN: Not fully sinking to GND

Is it acceptable to use working hours to read general interest books?

How to pronounce 'c++' in Spanish

Is Electric Central Heating worth it if using Solar Panels?

Multiple fireplaces in an apartment building?

Can a stored procedure reference the database in which it is stored?

Unknown code in script

What's the difference between using dependency injection with a container and using a service locator?

How important is it that $TERM is correct?

std::unique_ptr of base class holding reference of derived class does not show warning in gcc compiler while naked pointer shows it. Why?

Magical attacks and overcoming damage resistance

Contradiction proof for inequality of P and NP?

Do I need to watch Ant-Man and the Wasp and Captain Marvel before watching Avengers: Endgame?



Find the identical rows in a matrix


How to find rows that have maximum value?How to do equality check of a large matrix and get the corresponding index position?List manipulation: Dropping first or last row or column of a matrixIs it possible to colour only one column of a matrix?Make a vector of sums of matrix rowsHow to operate on spans of rows in a matrix?Efficiently select the smallest magnitude element from each column of a matrixMatrix expansion and reorganisationMatrix using For LoopChanging the position of rows and columns in a matrix













3












$begingroup$


Suppose I have the following matrix:



M = 
{{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0,1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};

TableForm[M, TableHeadings -> {{S1, S2, S3, S4, S5, S6, S7, S8}}]


matrix



In this case, it turns out that rows (S1, S8), (S2, S3, S4), (S5, S6, S7) have equal element values in identical column positions. I have a 1000 x 1000 matrix to examine and would appreciate any assistance in coding this problem.










share|improve this question











$endgroup$








  • 2




    $begingroup$
    Try Values[PositionIndex[M]]
    $endgroup$
    – Coolwater
    1 hour ago










  • $begingroup$
    @Coolwater If there is a unique row, your method will fail. At least one needs to delete if list has length 1
    $endgroup$
    – Okkes Dulgerci
    24 mins ago
















3












$begingroup$


Suppose I have the following matrix:



M = 
{{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0,1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};

TableForm[M, TableHeadings -> {{S1, S2, S3, S4, S5, S6, S7, S8}}]


matrix



In this case, it turns out that rows (S1, S8), (S2, S3, S4), (S5, S6, S7) have equal element values in identical column positions. I have a 1000 x 1000 matrix to examine and would appreciate any assistance in coding this problem.










share|improve this question











$endgroup$








  • 2




    $begingroup$
    Try Values[PositionIndex[M]]
    $endgroup$
    – Coolwater
    1 hour ago










  • $begingroup$
    @Coolwater If there is a unique row, your method will fail. At least one needs to delete if list has length 1
    $endgroup$
    – Okkes Dulgerci
    24 mins ago














3












3








3





$begingroup$


Suppose I have the following matrix:



M = 
{{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0,1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};

TableForm[M, TableHeadings -> {{S1, S2, S3, S4, S5, S6, S7, S8}}]


matrix



In this case, it turns out that rows (S1, S8), (S2, S3, S4), (S5, S6, S7) have equal element values in identical column positions. I have a 1000 x 1000 matrix to examine and would appreciate any assistance in coding this problem.










share|improve this question











$endgroup$




Suppose I have the following matrix:



M = 
{{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0,1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};

TableForm[M, TableHeadings -> {{S1, S2, S3, S4, S5, S6, S7, S8}}]


matrix



In this case, it turns out that rows (S1, S8), (S2, S3, S4), (S5, S6, S7) have equal element values in identical column positions. I have a 1000 x 1000 matrix to examine and would appreciate any assistance in coding this problem.







list-manipulation matrix






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 3 hours ago









m_goldberg

89.1k873200




89.1k873200










asked 4 hours ago









PRGPRG

1028




1028








  • 2




    $begingroup$
    Try Values[PositionIndex[M]]
    $endgroup$
    – Coolwater
    1 hour ago










  • $begingroup$
    @Coolwater If there is a unique row, your method will fail. At least one needs to delete if list has length 1
    $endgroup$
    – Okkes Dulgerci
    24 mins ago














  • 2




    $begingroup$
    Try Values[PositionIndex[M]]
    $endgroup$
    – Coolwater
    1 hour ago










  • $begingroup$
    @Coolwater If there is a unique row, your method will fail. At least one needs to delete if list has length 1
    $endgroup$
    – Okkes Dulgerci
    24 mins ago








2




2




$begingroup$
Try Values[PositionIndex[M]]
$endgroup$
– Coolwater
1 hour ago




$begingroup$
Try Values[PositionIndex[M]]
$endgroup$
– Coolwater
1 hour ago












$begingroup$
@Coolwater If there is a unique row, your method will fail. At least one needs to delete if list has length 1
$endgroup$
– Okkes Dulgerci
24 mins ago




$begingroup$
@Coolwater If there is a unique row, your method will fail. At least one needs to delete if list has length 1
$endgroup$
– Okkes Dulgerci
24 mins ago










2 Answers
2






active

oldest

votes


















4












$begingroup$

idx = DeleteDuplicates[Sort /@ Nearest[M -> Automatic, M, {∞, 0}]]



{{1, 8}, {2, 3, 4}, {5, 6, 7}}




In order to obtain the labels of the rows, you may use the following:



labels = {S1, S2, S3, S4, S5, S6, S7, S8};
Map[labels[[#]] &, idx, {2}]



{{S1, S8}, {S2, S3, S4}, {S5, S6, S7}}







share|improve this answer











$endgroup$













  • $begingroup$
    Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
    $endgroup$
    – PRG
    3 hours ago










  • $begingroup$
    MANY THANKS, HENRIK!
    $endgroup$
    – PRG
    2 hours ago










  • $begingroup$
    YOU'RE WELCOME, PRG! =D
    $endgroup$
    – Henrik Schumacher
    2 hours ago



















0












$begingroup$

Here is an alternative.



{row, col} = Dimensions@M; 

Flatten /@ DeleteDuplicates[Position[#, ConstantArray[0, col]] & /@ Outer[Subtract, M, M, 1]]



{{1, 8}, {2, 3, 4}, {5, 6, 7}}







share|improve this answer











$endgroup$














    Your Answer








    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%2f197039%2ffind-the-identical-rows-in-a-matrix%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    4












    $begingroup$

    idx = DeleteDuplicates[Sort /@ Nearest[M -> Automatic, M, {∞, 0}]]



    {{1, 8}, {2, 3, 4}, {5, 6, 7}}




    In order to obtain the labels of the rows, you may use the following:



    labels = {S1, S2, S3, S4, S5, S6, S7, S8};
    Map[labels[[#]] &, idx, {2}]



    {{S1, S8}, {S2, S3, S4}, {S5, S6, S7}}







    share|improve this answer











    $endgroup$













    • $begingroup$
      Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
      $endgroup$
      – PRG
      3 hours ago










    • $begingroup$
      MANY THANKS, HENRIK!
      $endgroup$
      – PRG
      2 hours ago










    • $begingroup$
      YOU'RE WELCOME, PRG! =D
      $endgroup$
      – Henrik Schumacher
      2 hours ago
















    4












    $begingroup$

    idx = DeleteDuplicates[Sort /@ Nearest[M -> Automatic, M, {∞, 0}]]



    {{1, 8}, {2, 3, 4}, {5, 6, 7}}




    In order to obtain the labels of the rows, you may use the following:



    labels = {S1, S2, S3, S4, S5, S6, S7, S8};
    Map[labels[[#]] &, idx, {2}]



    {{S1, S8}, {S2, S3, S4}, {S5, S6, S7}}







    share|improve this answer











    $endgroup$













    • $begingroup$
      Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
      $endgroup$
      – PRG
      3 hours ago










    • $begingroup$
      MANY THANKS, HENRIK!
      $endgroup$
      – PRG
      2 hours ago










    • $begingroup$
      YOU'RE WELCOME, PRG! =D
      $endgroup$
      – Henrik Schumacher
      2 hours ago














    4












    4








    4





    $begingroup$

    idx = DeleteDuplicates[Sort /@ Nearest[M -> Automatic, M, {∞, 0}]]



    {{1, 8}, {2, 3, 4}, {5, 6, 7}}




    In order to obtain the labels of the rows, you may use the following:



    labels = {S1, S2, S3, S4, S5, S6, S7, S8};
    Map[labels[[#]] &, idx, {2}]



    {{S1, S8}, {S2, S3, S4}, {S5, S6, S7}}







    share|improve this answer











    $endgroup$



    idx = DeleteDuplicates[Sort /@ Nearest[M -> Automatic, M, {∞, 0}]]



    {{1, 8}, {2, 3, 4}, {5, 6, 7}}




    In order to obtain the labels of the rows, you may use the following:



    labels = {S1, S2, S3, S4, S5, S6, S7, S8};
    Map[labels[[#]] &, idx, {2}]



    {{S1, S8}, {S2, S3, S4}, {S5, S6, S7}}








    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited 3 hours ago

























    answered 4 hours ago









    Henrik SchumacherHenrik Schumacher

    61.2k585171




    61.2k585171












    • $begingroup$
      Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
      $endgroup$
      – PRG
      3 hours ago










    • $begingroup$
      MANY THANKS, HENRIK!
      $endgroup$
      – PRG
      2 hours ago










    • $begingroup$
      YOU'RE WELCOME, PRG! =D
      $endgroup$
      – Henrik Schumacher
      2 hours ago


















    • $begingroup$
      Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
      $endgroup$
      – PRG
      3 hours ago










    • $begingroup$
      MANY THANKS, HENRIK!
      $endgroup$
      – PRG
      2 hours ago










    • $begingroup$
      YOU'RE WELCOME, PRG! =D
      $endgroup$
      – Henrik Schumacher
      2 hours ago
















    $begingroup$
    Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
    $endgroup$
    – PRG
    3 hours ago




    $begingroup$
    Henrik: Can I add the S in front of the result; e.g., (S1,S8),(S3,S4),(S5,S6,S7)?
    $endgroup$
    – PRG
    3 hours ago












    $begingroup$
    MANY THANKS, HENRIK!
    $endgroup$
    – PRG
    2 hours ago




    $begingroup$
    MANY THANKS, HENRIK!
    $endgroup$
    – PRG
    2 hours ago












    $begingroup$
    YOU'RE WELCOME, PRG! =D
    $endgroup$
    – Henrik Schumacher
    2 hours ago




    $begingroup$
    YOU'RE WELCOME, PRG! =D
    $endgroup$
    – Henrik Schumacher
    2 hours ago











    0












    $begingroup$

    Here is an alternative.



    {row, col} = Dimensions@M; 

    Flatten /@ DeleteDuplicates[Position[#, ConstantArray[0, col]] & /@ Outer[Subtract, M, M, 1]]



    {{1, 8}, {2, 3, 4}, {5, 6, 7}}







    share|improve this answer











    $endgroup$


















      0












      $begingroup$

      Here is an alternative.



      {row, col} = Dimensions@M; 

      Flatten /@ DeleteDuplicates[Position[#, ConstantArray[0, col]] & /@ Outer[Subtract, M, M, 1]]



      {{1, 8}, {2, 3, 4}, {5, 6, 7}}







      share|improve this answer











      $endgroup$
















        0












        0








        0





        $begingroup$

        Here is an alternative.



        {row, col} = Dimensions@M; 

        Flatten /@ DeleteDuplicates[Position[#, ConstantArray[0, col]] & /@ Outer[Subtract, M, M, 1]]



        {{1, 8}, {2, 3, 4}, {5, 6, 7}}







        share|improve this answer











        $endgroup$



        Here is an alternative.



        {row, col} = Dimensions@M; 

        Flatten /@ DeleteDuplicates[Position[#, ConstantArray[0, col]] & /@ Outer[Subtract, M, M, 1]]



        {{1, 8}, {2, 3, 4}, {5, 6, 7}}








        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 12 mins ago

























        answered 32 mins ago









        Okkes DulgerciOkkes Dulgerci

        5,5511919




        5,5511919






























            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.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f197039%2ffind-the-identical-rows-in-a-matrix%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

            Щит и меч (фильм) Содержание Названия серий | Сюжет |...

            is 'sed' thread safeWhat should someone know about using Python scripts in the shell?Nexenta bash script uses...

            Meter-Bus Содержание Параметры шины | Стандартизация |...