Draw an arrow that connect each column by the corresponding entry in LaTeX

  • Context: LaTeX 
  • Thread starter Thread starter EngWiPy
  • Start date Start date
  • Tags Tags
    Column Latex
Click For Summary
SUMMARY

The discussion focuses on using LaTeX with the TikZ package to draw arrows connecting specific entries in a matrix. The user provided a code snippet that demonstrates how to label nodes within a matrix and draw arrows between them using the syntax |[name=a]| for node labeling. The solution effectively illustrates how to connect the last row's entries to corresponding columns in previous rows. Additionally, the user inquired about removing a cell completely from the matrix.

PREREQUISITES
  • Familiarity with LaTeX document preparation system
  • Understanding of TikZ package for creating graphics in LaTeX
  • Knowledge of matrix structures in LaTeX
  • Basic understanding of node labeling in TikZ
NEXT STEPS
  • Explore advanced TikZ features for creating complex diagrams
  • Learn about LaTeX matrix manipulation techniques
  • Investigate methods for customizing node styles in TikZ
  • Research strategies for removing or hiding matrix cells in LaTeX
USEFUL FOR

LaTeX users, graphic designers, and educators looking to enhance their document presentations with visual elements using TikZ.

EngWiPy
Messages
1,361
Reaction score
61
Hello,

I have the following Latex code, and I need to draw an arrow that connect each column by the corresponding entry in the last (separated) row, e.g.: the column [x_0^{(1)} x_0^{(2)} ... x_0^{(M)}]^T with the entry x_0^{(R)} and so on. How can I do that?

Code:
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{matrix}
\begin{document}

\tikzset{ 
    table/.style={
        matrix of nodes,
        row sep=-\pgflinewidth,
        column sep=-\pgflinewidth,
        nodes={
            rectangle,
            draw=black,
            align=center
        },
        minimum height=1.5em,
        text depth=0.5ex,
        text height=2ex,
        nodes in empty cells,
%%
        %every even row/.style={
            %nodes={fill=gray!20}
        %},
        column 1/.style={
            nodes={text width=2em,font=\bfseries}
        },
				column 2/.style={
            nodes={text=red}
        },
				column 3/.style={
            nodes={text=blue}
        },
				column 5/.style={
            nodes={text=violet}
        },
        row 5/.style={
            nodes={
                fill=gray!20,
                %text=black,
                font=\bfseries
            }
        }
    }
}

\begin{tikzpicture}

\matrix (first) [table,text width=6em]
{
$\mathbf{x}^{(1)}$   & $x_0^{(1)}$ & $x_1^{(1)}$ & $\cdots$ & $x_{N-1}^{(1)}$ \\
$\mathbf{x}^{(2)}$   & $x_0^{(2)}$ & $x_1^{(2)}$ & $\cdots$ & $x_{N-1}^{(2)}$ \\
$\vdots$             & $\vdots$    & $\vdots$    & $\ddots$ & $\vdots$ \\
$\mathbf{x}^{(M)}$   & $x_0^{(M)}$ & $x_1^{(M)}$ & $\cdots$ & $x_{N-1}^{(M)}$ \\[10mm]
$\mathbf{x}^{(R)}$   & $x_0^{(R)}$ & $x_1^{(R)}$ & $\cdots$ & $x_{N-1}^{(R)}$ \\
};


\end{tikzpicture}
\end{document}

Thanks in advance
 
Physics news on Phys.org
I did one for you. I checked out this site for examples, always love learning new latex packages.

www.texample.net/tikz/examples/feature/arrows/

Basically I labelled to areas using the label maker for nodes : |[name=a]|

Then after the matrix I drew an arrow from a to b. So repeat wherever you need it.

Code:
\matrix (first) [table,text width=6em]
{
$\mathbf{x}^{(1)}$   & $x_0^{(1)}$ & $x_1^{(1)}$ & $\cdots$ & $x_{N-1}^{(1)}$ \\
$\mathbf{x}^{(2)}$   & $x_0^{(2)}$ & $x_1^{(2)}$ & $\cdots$ & $x_{N-1}^{(2)}$ \\
$\vdots$             & $\vdots$    & $\vdots$    & $\ddots$ & $\vdots$ \\
|[name=a]| $\mathbf{x}^{(M)}$   & $x_0^{(M)}$ & $x_1^{(M)}$ & $\cdots$ & $x_{N-1}^{(M)}$\\[10mm]
|[name=b]| $\mathbf{x}^{(R)}$   & $x_0^{(R)}$ & $x_1^{(R)}$ & $\cdots$ & $x_{N-1}^{(R)}$ \\
};
 \draw[->,thick] (a) edge (b);
 
Hepth said:
I did one for you. I checked out this site for examples, always love learning new latex packages.

www.texample.net/tikz/examples/feature/arrows/

Basically I labelled to areas using the label maker for nodes : |[name=a]|

Then after the matrix I drew an arrow from a to b. So repeat wherever you need it.

Code:
\matrix (first) [table,text width=6em]
{
$\mathbf{x}^{(1)}$   & $x_0^{(1)}$ & $x_1^{(1)}$ & $\cdots$ & $x_{N-1}^{(1)}$ \\
$\mathbf{x}^{(2)}$   & $x_0^{(2)}$ & $x_1^{(2)}$ & $\cdots$ & $x_{N-1}^{(2)}$ \\
$\vdots$             & $\vdots$    & $\vdots$    & $\ddots$ & $\vdots$ \\
|[name=a]| $\mathbf{x}^{(M)}$   & $x_0^{(M)}$ & $x_1^{(M)}$ & $\cdots$ & $x_{N-1}^{(M)}$\\[10mm]
|[name=b]| $\mathbf{x}^{(R)}$   & $x_0^{(R)}$ & $x_1^{(R)}$ & $\cdots$ & $x_{N-1}^{(R)}$ \\
};
 \draw[->,thick] (a) edge (b);

Perfect. Look very nice. Thanks
 
Another question: How can I remove a cell completely?
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 0 ·
Replies
0
Views
6K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
5K
  • · Replies 4 ·
Replies
4
Views
4K