Show sparse matrices like chessboardsParametrize shading in table through TikZDrawing heatmaps using TikZLaTeX Tables: Cell value color based on its sign / conditional cell colorsymmetric matricesTikZ marking several blocks in a matrixeasybmat matrices dotted linesMatrices off the pageHomogeneous Matrices (elements size)Matrices with cryptocode packageAlign matrices in TexmakerWriting matrices in latexSystem of matricesHow to show matrix numbering under the matrices?

Unconventional Opposites

Do adult Russians normally hand-write Cyrillic as cursive or as block letters?

Can a magnetic field of a large body be stronger than its gravity?

What's the correct term for a waitress in the Middle Ages?

Sucuri detects malware on wordpress but I can't find the malicious code

What is the best option to connect old computer to modern TV

Do I add my ability modifier to the damage of the bonus-action attack granted by the Crossbow Expert feat?

Metal bar on DMM PCB

Word for a small burst of laughter that can't be held back

Did thousands of women die every year due to illegal abortions before Roe v. Wade?

Is American Express widely accepted in France?

Can an old DSLR be upgraded to match modern smartphone image quality

Why does a helium balloon rise?

Access to all elements on the page

Is it OK to bring delicacies from hometown as tokens of gratitude for an out-of-town interview?

What's the most polite way to tell a manager "shut up and let me work"?

Opposite of "Squeaky wheel gets the grease"

GFCI Outlet in Bathroom, Lights not working

Hygienic footwear for prehensile feet?

Is having a hidden directory under /etc safe?

Will TSA allow me to carry a Continuous Positive Airway Pressure (CPAP) device?

Is there any Biblical Basis for 400 years of silence between Old and New Testament?

Is there a practical difference between different types of Berachos?

Can you please explain this joke: "I'm going bananas is what I tell my bananas before I leave the house"?



Show sparse matrices like chessboards


Parametrize shading in table through TikZDrawing heatmaps using TikZLaTeX Tables: Cell value color based on its sign / conditional cell colorsymmetric matricesTikZ marking several blocks in a matrixeasybmat matrices dotted linesMatrices off the pageHomogeneous Matrices (elements size)Matrices with cryptocode packageAlign matrices in TexmakerWriting matrices in latexSystem of matricesHow to show matrix numbering under the matrices?













5















I am trying to display sparse matrices like chessboards, where white places indicates 0 entries and black ones non-zero entries (in this case matrices are boolean so every non-zero entry is a one entry), but I can't find a proper way.



Because I am looking to show more than one matrix (more in detail, I have to show matrix A and its power), I will have to print more than one on the same page and specify their layout, like figures.



For example, given this matrix as input:



| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 0 |


I would expect such output:



enter image description here










share|improve this question
























  • Welcome to the site. You are expected to provide a small, complete (non)working example of code demonstrating what you have tried. An image of what you are hoping to achieve would help a great deal.

    – Steven B. Segletes
    10 hours ago











  • Perhaps this question might apply directly? tex.stackexchange.com/questions/44868/… and tex.stackexchange.com/questions/42444/… and tex.stackexchange.com/questions/174234/…

    – Steven B. Segletes
    9 hours ago
















5















I am trying to display sparse matrices like chessboards, where white places indicates 0 entries and black ones non-zero entries (in this case matrices are boolean so every non-zero entry is a one entry), but I can't find a proper way.



Because I am looking to show more than one matrix (more in detail, I have to show matrix A and its power), I will have to print more than one on the same page and specify their layout, like figures.



For example, given this matrix as input:



| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 0 |


I would expect such output:



enter image description here










share|improve this question
























  • Welcome to the site. You are expected to provide a small, complete (non)working example of code demonstrating what you have tried. An image of what you are hoping to achieve would help a great deal.

    – Steven B. Segletes
    10 hours ago











  • Perhaps this question might apply directly? tex.stackexchange.com/questions/44868/… and tex.stackexchange.com/questions/42444/… and tex.stackexchange.com/questions/174234/…

    – Steven B. Segletes
    9 hours ago














5












5








5


2






I am trying to display sparse matrices like chessboards, where white places indicates 0 entries and black ones non-zero entries (in this case matrices are boolean so every non-zero entry is a one entry), but I can't find a proper way.



Because I am looking to show more than one matrix (more in detail, I have to show matrix A and its power), I will have to print more than one on the same page and specify their layout, like figures.



For example, given this matrix as input:



| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 0 |


I would expect such output:



enter image description here










share|improve this question
















I am trying to display sparse matrices like chessboards, where white places indicates 0 entries and black ones non-zero entries (in this case matrices are boolean so every non-zero entry is a one entry), but I can't find a proper way.



Because I am looking to show more than one matrix (more in detail, I have to show matrix A and its power), I will have to print more than one on the same page and specify their layout, like figures.



For example, given this matrix as input:



| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 0 |


I would expect such output:



enter image description here







matrices






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 9 hours ago







EagleOne

















asked 10 hours ago









EagleOneEagleOne

456




456












  • Welcome to the site. You are expected to provide a small, complete (non)working example of code demonstrating what you have tried. An image of what you are hoping to achieve would help a great deal.

    – Steven B. Segletes
    10 hours ago











  • Perhaps this question might apply directly? tex.stackexchange.com/questions/44868/… and tex.stackexchange.com/questions/42444/… and tex.stackexchange.com/questions/174234/…

    – Steven B. Segletes
    9 hours ago


















  • Welcome to the site. You are expected to provide a small, complete (non)working example of code demonstrating what you have tried. An image of what you are hoping to achieve would help a great deal.

    – Steven B. Segletes
    10 hours ago











  • Perhaps this question might apply directly? tex.stackexchange.com/questions/44868/… and tex.stackexchange.com/questions/42444/… and tex.stackexchange.com/questions/174234/…

    – Steven B. Segletes
    9 hours ago

















Welcome to the site. You are expected to provide a small, complete (non)working example of code demonstrating what you have tried. An image of what you are hoping to achieve would help a great deal.

– Steven B. Segletes
10 hours ago





Welcome to the site. You are expected to provide a small, complete (non)working example of code demonstrating what you have tried. An image of what you are hoping to achieve would help a great deal.

– Steven B. Segletes
10 hours ago













Perhaps this question might apply directly? tex.stackexchange.com/questions/44868/… and tex.stackexchange.com/questions/42444/… and tex.stackexchange.com/questions/174234/…

– Steven B. Segletes
9 hours ago






Perhaps this question might apply directly? tex.stackexchange.com/questions/44868/… and tex.stackexchange.com/questions/42444/… and tex.stackexchange.com/questions/174234/…

– Steven B. Segletes
9 hours ago











2 Answers
2






active

oldest

votes


















3














With TikZ this is rather straightforward.



documentclassarticle
usepackagetikz
usetikzlibrarymatrix
begindocument
begintikzpicture[0/.style=draw,ultra thin,1/.style=0,fill=black]
matrix[matrix of nodes,cells=minimum size=1.5em,anchor=center]
& ;
endtikzpicture
enddocument


enter image description here



If you have a simple pattern as this one, you could also do



documentclassarticle
usepackagetikz
usetikzlibrarymatrix
begindocument
begintikzpicture[my cell/.style=/utils/exec=%
pgfmathtruncatemacroitestmod(thepgfmatrixcurrentrow+thepgfmatrixcurrentcolumn,2)
ifnumitest=1
pgfkeysalso/tikz/fill=black
fi]
matrix[matrix of nodes,nodes in empty cells,
nodes=minimum size=1.5em,anchor=center,draw,ultra thin,my cell]
& & \
& & \
& & \
;
endtikzpicture
enddocument





share|improve this answer
































    4














    With a fairly natural syntax:



    documentclassarticle
    usepackageamsmath

    newlengthsparsesize
    setlengthsparsesize12pt

    newcommandsparsezero%
    begingroup
    setlengthfboxsep-0.2pt%
    setlengthfboxrule0.2pt%
    fboxhspacesparsesizerule0ptsparsesize%
    endgroup

    newcommandsparseonerulesparsesizesparsesize
    newcommandactivate[2]%
    begingrouplccode`~=`#1lowercaseendgrouplet~#2%
    mathcode`#1="8000


    newenvironmentsparsematrix
    %
    renewcommandarraystretch0%
    setlengtharraycolsep0pt%
    activate0sparsezeroactivate1sparseone%
    beginmatrix%

    endmatrix

    begindocument

    [
    beginpmatrix
    0 & 1 & 0 \
    1 & 0 & 1 \
    0 & 1 & 0
    endpmatrix
    =
    beginsparsematrix
    0 & 1 & 0 \
    1 & 0 & 1 \
    0 & 1 & 0
    endsparsematrix
    ]

    enddocument


    enter image description here



    For general matrices with integer coefficients it's a bit more difficult.



    documentclassarticle
    usepackageamsmath,xparse

    newlengthsparsesize
    setlengthsparsesize12pt
    newcommandsparsezero%
    begingroup
    setlengthfboxsep-0.2pt%
    setlengthfboxrule0.2pt%
    fboxhspacesparsesizerule0ptsparsesize%
    endgroup

    newcommandsparseonerulesparsesizesparsesize

    ExplSyntaxOn
    NewDocumentEnvironmentsparsematrixb

    renewcommandarraystretch0%
    setlengtharraycolsep0pt%
    % make a subformula
    beginmatrix
    eagleone_sparsematrix:n #1
    endmatrix



    seq_new:N l__eagleone_sparsematrix_rows_seq
    seq_new:N l__eagleone_sparsematrix_row_in_seq
    seq_new:N l__eagleone_sparsematrix_row_out_seq

    cs_new_protected:Nn eagleone_sparsematrix:n

    seq_set_split:Nnn l__eagleone_sparsematrix_rows_seq \ #1
    seq_map_function:NN l__eagleone_sparsematrix_rows_seq __eagleone_sparsematrix_row:n

    cs_new_protected:Nn __eagleone_sparsematrix_row:n

    seq_set_split:Nnn l__eagleone_sparsematrix_row_in_seq & #1
    seq_map_inline:Nn l__eagleone_sparsematrix_row_in_seq

    int_compare:nTF ##1 = 0

    seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparsezero


    seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparseone


    seq_use:Nn l__eagleone_sparsematrix_row_out_seq & \


    ExplSyntaxOff

    begindocument

    [
    beginpmatrix
    0 & 1 & 0 \
    1 & 0 & 1 \
    0 & 1 & 0
    endpmatrix
    =
    beginsparsematrix
    0 & 1 & 0 \
    1 & 0 & 1 \
    0 & 1 & 0
    endsparsematrix
    ]

    [
    beginsparsematrix
    0 & 1 & 0 \
    1 & 0 & 1 \
    0 & 1 & 0
    endsparsematrix^2
    =
    beginsparsematrix
    1 & 0 & 1 \
    0 & 2 & 0 \
    1 & 0 & 1
    endsparsematrix
    ]

    enddocument


    enter image description here






    share|improve this answer


















    • 1





      For my humble opinion: excellent. +1.

      – Sebastiano
      7 hours ago











    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "85"
    ;
    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%2ftex.stackexchange.com%2fquestions%2f493392%2fshow-sparse-matrices-like-chessboards%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









    3














    With TikZ this is rather straightforward.



    documentclassarticle
    usepackagetikz
    usetikzlibrarymatrix
    begindocument
    begintikzpicture[0/.style=draw,ultra thin,1/.style=0,fill=black]
    matrix[matrix of nodes,cells=minimum size=1.5em,anchor=center]
    & ;
    endtikzpicture
    enddocument


    enter image description here



    If you have a simple pattern as this one, you could also do



    documentclassarticle
    usepackagetikz
    usetikzlibrarymatrix
    begindocument
    begintikzpicture[my cell/.style=/utils/exec=%
    pgfmathtruncatemacroitestmod(thepgfmatrixcurrentrow+thepgfmatrixcurrentcolumn,2)
    ifnumitest=1
    pgfkeysalso/tikz/fill=black
    fi]
    matrix[matrix of nodes,nodes in empty cells,
    nodes=minimum size=1.5em,anchor=center,draw,ultra thin,my cell]
    & & \
    & & \
    & & \
    ;
    endtikzpicture
    enddocument





    share|improve this answer





























      3














      With TikZ this is rather straightforward.



      documentclassarticle
      usepackagetikz
      usetikzlibrarymatrix
      begindocument
      begintikzpicture[0/.style=draw,ultra thin,1/.style=0,fill=black]
      matrix[matrix of nodes,cells=minimum size=1.5em,anchor=center]
      & ;
      endtikzpicture
      enddocument


      enter image description here



      If you have a simple pattern as this one, you could also do



      documentclassarticle
      usepackagetikz
      usetikzlibrarymatrix
      begindocument
      begintikzpicture[my cell/.style=/utils/exec=%
      pgfmathtruncatemacroitestmod(thepgfmatrixcurrentrow+thepgfmatrixcurrentcolumn,2)
      ifnumitest=1
      pgfkeysalso/tikz/fill=black
      fi]
      matrix[matrix of nodes,nodes in empty cells,
      nodes=minimum size=1.5em,anchor=center,draw,ultra thin,my cell]
      & & \
      & & \
      & & \
      ;
      endtikzpicture
      enddocument





      share|improve this answer



























        3












        3








        3







        With TikZ this is rather straightforward.



        documentclassarticle
        usepackagetikz
        usetikzlibrarymatrix
        begindocument
        begintikzpicture[0/.style=draw,ultra thin,1/.style=0,fill=black]
        matrix[matrix of nodes,cells=minimum size=1.5em,anchor=center]
        & ;
        endtikzpicture
        enddocument


        enter image description here



        If you have a simple pattern as this one, you could also do



        documentclassarticle
        usepackagetikz
        usetikzlibrarymatrix
        begindocument
        begintikzpicture[my cell/.style=/utils/exec=%
        pgfmathtruncatemacroitestmod(thepgfmatrixcurrentrow+thepgfmatrixcurrentcolumn,2)
        ifnumitest=1
        pgfkeysalso/tikz/fill=black
        fi]
        matrix[matrix of nodes,nodes in empty cells,
        nodes=minimum size=1.5em,anchor=center,draw,ultra thin,my cell]
        & & \
        & & \
        & & \
        ;
        endtikzpicture
        enddocument





        share|improve this answer















        With TikZ this is rather straightforward.



        documentclassarticle
        usepackagetikz
        usetikzlibrarymatrix
        begindocument
        begintikzpicture[0/.style=draw,ultra thin,1/.style=0,fill=black]
        matrix[matrix of nodes,cells=minimum size=1.5em,anchor=center]
        & ;
        endtikzpicture
        enddocument


        enter image description here



        If you have a simple pattern as this one, you could also do



        documentclassarticle
        usepackagetikz
        usetikzlibrarymatrix
        begindocument
        begintikzpicture[my cell/.style=/utils/exec=%
        pgfmathtruncatemacroitestmod(thepgfmatrixcurrentrow+thepgfmatrixcurrentcolumn,2)
        ifnumitest=1
        pgfkeysalso/tikz/fill=black
        fi]
        matrix[matrix of nodes,nodes in empty cells,
        nodes=minimum size=1.5em,anchor=center,draw,ultra thin,my cell]
        & & \
        & & \
        & & \
        ;
        endtikzpicture
        enddocument






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 8 hours ago

























        answered 8 hours ago









        marmotmarmot

        131k6166316




        131k6166316





















            4














            With a fairly natural syntax:



            documentclassarticle
            usepackageamsmath

            newlengthsparsesize
            setlengthsparsesize12pt

            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize
            newcommandactivate[2]%
            begingrouplccode`~=`#1lowercaseendgrouplet~#2%
            mathcode`#1="8000


            newenvironmentsparsematrix
            %
            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            activate0sparsezeroactivate1sparseone%
            beginmatrix%

            endmatrix

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            enddocument


            enter image description here



            For general matrices with integer coefficients it's a bit more difficult.



            documentclassarticle
            usepackageamsmath,xparse

            newlengthsparsesize
            setlengthsparsesize12pt
            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize

            ExplSyntaxOn
            NewDocumentEnvironmentsparsematrixb

            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            % make a subformula
            beginmatrix
            eagleone_sparsematrix:n #1
            endmatrix



            seq_new:N l__eagleone_sparsematrix_rows_seq
            seq_new:N l__eagleone_sparsematrix_row_in_seq
            seq_new:N l__eagleone_sparsematrix_row_out_seq

            cs_new_protected:Nn eagleone_sparsematrix:n

            seq_set_split:Nnn l__eagleone_sparsematrix_rows_seq \ #1
            seq_map_function:NN l__eagleone_sparsematrix_rows_seq __eagleone_sparsematrix_row:n

            cs_new_protected:Nn __eagleone_sparsematrix_row:n

            seq_set_split:Nnn l__eagleone_sparsematrix_row_in_seq & #1
            seq_map_inline:Nn l__eagleone_sparsematrix_row_in_seq

            int_compare:nTF ##1 = 0

            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparsezero


            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparseone


            seq_use:Nn l__eagleone_sparsematrix_row_out_seq & \


            ExplSyntaxOff

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            [
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix^2
            =
            beginsparsematrix
            1 & 0 & 1 \
            0 & 2 & 0 \
            1 & 0 & 1
            endsparsematrix
            ]

            enddocument


            enter image description here






            share|improve this answer


















            • 1





              For my humble opinion: excellent. +1.

              – Sebastiano
              7 hours ago















            4














            With a fairly natural syntax:



            documentclassarticle
            usepackageamsmath

            newlengthsparsesize
            setlengthsparsesize12pt

            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize
            newcommandactivate[2]%
            begingrouplccode`~=`#1lowercaseendgrouplet~#2%
            mathcode`#1="8000


            newenvironmentsparsematrix
            %
            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            activate0sparsezeroactivate1sparseone%
            beginmatrix%

            endmatrix

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            enddocument


            enter image description here



            For general matrices with integer coefficients it's a bit more difficult.



            documentclassarticle
            usepackageamsmath,xparse

            newlengthsparsesize
            setlengthsparsesize12pt
            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize

            ExplSyntaxOn
            NewDocumentEnvironmentsparsematrixb

            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            % make a subformula
            beginmatrix
            eagleone_sparsematrix:n #1
            endmatrix



            seq_new:N l__eagleone_sparsematrix_rows_seq
            seq_new:N l__eagleone_sparsematrix_row_in_seq
            seq_new:N l__eagleone_sparsematrix_row_out_seq

            cs_new_protected:Nn eagleone_sparsematrix:n

            seq_set_split:Nnn l__eagleone_sparsematrix_rows_seq \ #1
            seq_map_function:NN l__eagleone_sparsematrix_rows_seq __eagleone_sparsematrix_row:n

            cs_new_protected:Nn __eagleone_sparsematrix_row:n

            seq_set_split:Nnn l__eagleone_sparsematrix_row_in_seq & #1
            seq_map_inline:Nn l__eagleone_sparsematrix_row_in_seq

            int_compare:nTF ##1 = 0

            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparsezero


            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparseone


            seq_use:Nn l__eagleone_sparsematrix_row_out_seq & \


            ExplSyntaxOff

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            [
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix^2
            =
            beginsparsematrix
            1 & 0 & 1 \
            0 & 2 & 0 \
            1 & 0 & 1
            endsparsematrix
            ]

            enddocument


            enter image description here






            share|improve this answer


















            • 1





              For my humble opinion: excellent. +1.

              – Sebastiano
              7 hours ago













            4












            4








            4







            With a fairly natural syntax:



            documentclassarticle
            usepackageamsmath

            newlengthsparsesize
            setlengthsparsesize12pt

            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize
            newcommandactivate[2]%
            begingrouplccode`~=`#1lowercaseendgrouplet~#2%
            mathcode`#1="8000


            newenvironmentsparsematrix
            %
            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            activate0sparsezeroactivate1sparseone%
            beginmatrix%

            endmatrix

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            enddocument


            enter image description here



            For general matrices with integer coefficients it's a bit more difficult.



            documentclassarticle
            usepackageamsmath,xparse

            newlengthsparsesize
            setlengthsparsesize12pt
            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize

            ExplSyntaxOn
            NewDocumentEnvironmentsparsematrixb

            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            % make a subformula
            beginmatrix
            eagleone_sparsematrix:n #1
            endmatrix



            seq_new:N l__eagleone_sparsematrix_rows_seq
            seq_new:N l__eagleone_sparsematrix_row_in_seq
            seq_new:N l__eagleone_sparsematrix_row_out_seq

            cs_new_protected:Nn eagleone_sparsematrix:n

            seq_set_split:Nnn l__eagleone_sparsematrix_rows_seq \ #1
            seq_map_function:NN l__eagleone_sparsematrix_rows_seq __eagleone_sparsematrix_row:n

            cs_new_protected:Nn __eagleone_sparsematrix_row:n

            seq_set_split:Nnn l__eagleone_sparsematrix_row_in_seq & #1
            seq_map_inline:Nn l__eagleone_sparsematrix_row_in_seq

            int_compare:nTF ##1 = 0

            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparsezero


            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparseone


            seq_use:Nn l__eagleone_sparsematrix_row_out_seq & \


            ExplSyntaxOff

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            [
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix^2
            =
            beginsparsematrix
            1 & 0 & 1 \
            0 & 2 & 0 \
            1 & 0 & 1
            endsparsematrix
            ]

            enddocument


            enter image description here






            share|improve this answer













            With a fairly natural syntax:



            documentclassarticle
            usepackageamsmath

            newlengthsparsesize
            setlengthsparsesize12pt

            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize
            newcommandactivate[2]%
            begingrouplccode`~=`#1lowercaseendgrouplet~#2%
            mathcode`#1="8000


            newenvironmentsparsematrix
            %
            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            activate0sparsezeroactivate1sparseone%
            beginmatrix%

            endmatrix

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            enddocument


            enter image description here



            For general matrices with integer coefficients it's a bit more difficult.



            documentclassarticle
            usepackageamsmath,xparse

            newlengthsparsesize
            setlengthsparsesize12pt
            newcommandsparsezero%
            begingroup
            setlengthfboxsep-0.2pt%
            setlengthfboxrule0.2pt%
            fboxhspacesparsesizerule0ptsparsesize%
            endgroup

            newcommandsparseonerulesparsesizesparsesize

            ExplSyntaxOn
            NewDocumentEnvironmentsparsematrixb

            renewcommandarraystretch0%
            setlengtharraycolsep0pt%
            % make a subformula
            beginmatrix
            eagleone_sparsematrix:n #1
            endmatrix



            seq_new:N l__eagleone_sparsematrix_rows_seq
            seq_new:N l__eagleone_sparsematrix_row_in_seq
            seq_new:N l__eagleone_sparsematrix_row_out_seq

            cs_new_protected:Nn eagleone_sparsematrix:n

            seq_set_split:Nnn l__eagleone_sparsematrix_rows_seq \ #1
            seq_map_function:NN l__eagleone_sparsematrix_rows_seq __eagleone_sparsematrix_row:n

            cs_new_protected:Nn __eagleone_sparsematrix_row:n

            seq_set_split:Nnn l__eagleone_sparsematrix_row_in_seq & #1
            seq_map_inline:Nn l__eagleone_sparsematrix_row_in_seq

            int_compare:nTF ##1 = 0

            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparsezero


            seq_put_right:Nn l__eagleone_sparsematrix_row_out_seq sparseone


            seq_use:Nn l__eagleone_sparsematrix_row_out_seq & \


            ExplSyntaxOff

            begindocument

            [
            beginpmatrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endpmatrix
            =
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix
            ]

            [
            beginsparsematrix
            0 & 1 & 0 \
            1 & 0 & 1 \
            0 & 1 & 0
            endsparsematrix^2
            =
            beginsparsematrix
            1 & 0 & 1 \
            0 & 2 & 0 \
            1 & 0 & 1
            endsparsematrix
            ]

            enddocument


            enter image description here







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 7 hours ago









            egregegreg

            745k8919513290




            745k8919513290







            • 1





              For my humble opinion: excellent. +1.

              – Sebastiano
              7 hours ago












            • 1





              For my humble opinion: excellent. +1.

              – Sebastiano
              7 hours ago







            1




            1





            For my humble opinion: excellent. +1.

            – Sebastiano
            7 hours ago





            For my humble opinion: excellent. +1.

            – Sebastiano
            7 hours ago

















            draft saved

            draft discarded
















































            Thanks for contributing an answer to TeX - LaTeX 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.

            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%2ftex.stackexchange.com%2fquestions%2f493392%2fshow-sparse-matrices-like-chessboards%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

            Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

            Tom Holland Mục lục Đầu đời và giáo dục | Sự nghiệp | Cuộc sống cá nhân | Phim tham gia | Giải thưởng và đề cử | Chú thích | Liên kết ngoài | Trình đơn chuyển hướngProfile“Person Details for Thomas Stanley Holland, "England and Wales Birth Registration Index, 1837-2008" — FamilySearch.org”"Meet Tom Holland... the 16-year-old star of The Impossible""Schoolboy actor Tom Holland finds himself in Oscar contention for role in tsunami drama"“Naomi Watts on the Prince William and Harry's reaction to her film about the late Princess Diana”lưu trữ"Holland and Pflueger Are West End's Two New 'Billy Elliots'""I'm so envious of my son, the movie star! British writer Dominic Holland's spent 20 years trying to crack Hollywood - but he's been beaten to it by a very unlikely rival"“Richard and Margaret Povey of Jersey, Channel Islands, UK: Information about Thomas Stanley Holland”"Tom Holland to play Billy Elliot""New Billy Elliot leaving the garage"Billy Elliot the Musical - Tom Holland - Billy"A Tale of four Billys: Tom Holland""The Feel Good Factor""Thames Christian College schoolboys join Myleene Klass for The Feelgood Factor""Government launches £600,000 arts bursaries pilot""BILLY's Chapman, Holland, Gardner & Jackson-Keen Visit Prime Minister""Elton John 'blown away' by Billy Elliot fifth birthday" (video with John's interview and fragments of Holland's performance)"First News interviews Arrietty's Tom Holland"“33rd Critics' Circle Film Awards winners”“National Board of Review Current Awards”Bản gốc"Ron Howard Whaling Tale 'In The Heart Of The Sea' Casts Tom Holland"“'Spider-Man' Finds Tom Holland to Star as New Web-Slinger”lưu trữ“Captain America: Civil War (2016)”“Film Review: ‘Captain America: Civil War’”lưu trữ“‘Captain America: Civil War’ review: Choose your own avenger”lưu trữ“The Lost City of Z reviews”“Sony Pictures and Marvel Studios Find Their 'Spider-Man' Star and Director”“‘Mary Magdalene’, ‘Current War’ & ‘Wind River’ Get 2017 Release Dates From Weinstein”“Lionsgate Unleashing Daisy Ridley & Tom Holland Starrer ‘Chaos Walking’ In Cannes”“PTA's 'Master' Leads Chicago Film Critics Nominations, UPDATED: Houston and Indiana Critics Nominations”“Nominaciones Goya 2013 Telecinco Cinema – ENG”“Jameson Empire Film Awards: Martin Freeman wins best actor for performance in The Hobbit”“34th Annual Young Artist Awards”Bản gốc“Teen Choice Awards 2016—Captain America: Civil War Leads Second Wave of Nominations”“BAFTA Film Award Nominations: ‘La La Land’ Leads Race”“Saturn Awards Nominations 2017: 'Rogue One,' 'Walking Dead' Lead”Tom HollandTom HollandTom HollandTom Hollandmedia.gettyimages.comWorldCat Identities300279794no20130442900000 0004 0355 42791085670554170004732cb16706349t(data)XX5557367

            Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes