3

So, here is what I want to do: I have created a matrix C and another Matrix D. And I have labelled the columns and rows. Now, I want to join these two matrices together, keeping the labels. But I want - I hope this is posssible - to have a dotted line go through the matrix, indicating where labels 'TX^C' end and where labels 'TX^D' start.

This is what I have so far:

\documentclass[a4paper12pt]{article}
\usepackage{geometry}
\usepackage{blkarray}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{graphicx}

\begin{document}

\[\mathbf{J} = 
\begin{blockarray}{cccccc}
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
\begin{block}{(ccccc)c}
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots &  & \vdots &  \\
&   &   &  &  &  \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots &  & \vdots &  \\
&   &   &  &  &  \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{block}
\end{blockarray}
\]

\end{document}

Only the dotted line is missing. Alternatively, shading the background of the upper matrix in a light color would be nice as well. I have just read a similar question here. But since I don't know LaTeX so well, I don't know if I want to overcomplicate things by making use of tikz.

Small Edit: What, if I want two vertical labels? I was trying this, for example:

\[\mathbf{Pairs} = 
\begin{blockarray}{cc}
Transmitter & Receiver \\
\begin{block}{c(cc)c}
TX_1^C & (x,y) & (x,y) & BS   \\
TX_2^C & (x,y) & (x,y) & BS     \\
&\vdots & \vdots  \\
TX_{max}^C & (x,y) & (x,y) & BS  \\
\BAhhline{......} 
TX_1^D & (x,y) & (x,y) &RX_1^D   \\
TX_2^D & (x,y) & (x,y) &RX_2^D   \\
&\vdots & \vdots   \\
TX_{ax}^D & (x,y) & (x,y) &RX_{max}^D  \\
\end{block}
\end{blockarray}
\]
3

The package blkarray already offers several commands for different lines. One of them is \BAhhline where you can define the kind of line

\documentclass[a4paper12pt]{article}
\usepackage{geometry}
\usepackage{blkarray}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{graphicx}

\begin{document}

\[\mathbf{J} = 
\begin{blockarray}{cccccc}
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
\begin{block}{(ccccc)c}
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots &  & \vdots &  \\
&   &   &  &  &  \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
\BAhhline{......}
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots &  & \vdots &  \\
&   &   &  &  &  \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{block}
\end{blockarray}
\]

\end{document}

enter image description here

| improve this answer | |
  • Thx so much, Ignasi! This is exactly what I want. Just - see my edit - what if I only label the columns and not the rows? It doesn't seem to work the way I am trying to do it. I have included the extra & before the \` , because this is where usually there would be the labels. If I leave the &`, at least I don't get an error. But the left bracket is far to much to the left – user503842 Nov 10 '18 at 12:39
  • hmm... actually, let me correct this: Can you tell me a way of how to have two vertical labels? One on the right and one on the left ? – user503842 Nov 10 '18 at 12:48
  • ok, nevermind. I have opened a new question for this. Thx so much for your help, again! – user503842 Nov 10 '18 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.