这是神经模糊网络图。我不知道如何用 LaTeX 画。
感谢您的帮助,我画出了下面的图。非常感谢。但是,图片有一些小缺陷:圆圈大小不一样;如何调整文字大小;图片有点大;...
\documentclass{article}
\usepackage{tikz}
\usepackage{float}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[plain/.style={draw=none,fill=none},
net/.style={matrix of nodes,
nodes={draw,circle,minimum size=0.8cm},
nodes in empty cells,
column sep=1.9cm,
row sep=-6pt,
},
>=latex]
\matrix[net] (mat) {
|[plain]| \parbox{1.3cm}{\centering Input\\layer} &|[plain]| \parbox{1.3cm}{\centering E\\Function} &|[plain]| \parbox{1.3cm}{\centering H\\Function} &
|[plain]| \parbox{1.3cm}{\centering Output\\layer} \\
|[plain]| \\
|[plain]| & {$A_{11}$} \\
|[plain]| \\
{$x_1$} & {$A_{12}$}& {$h_{1}$}\\
|[plain]| &|[plain]| {\textbf{$\vdots$}}& |[plain]| \\
|[plain]| & {$A_{1n}$}&|[plain]| &|[plain]| \\
|[plain]| \\
|[plain]| & {$A_{21}$} &|[plain]| &|[plain]|\\
|[plain]| \\
{$x_2$} & {$A_{22}$}& {$h_{2}$}&{z}\\
|[plain]| &|[plain]| {\textbf{$\vdots$}}& |[plain]| \\
|[plain]| & {$A_{2n}$} \\
|[plain]| \\
|[plain]| & {$A_{m1}$} \\
|[plain]| \\
{$x_m$} & {$A_{m2}$}& {$h_{n}$}\\
|[plain]| &|[plain]| {\textbf{$\vdots$}}& |[plain]| \\
|[plain]| & {$A_{mn}$} \\
};
\foreach \xo in {5}{
\foreach \aio in {3,5,7}
\draw[->] (mat-\xo-1) -- (mat-\aio-2);}
\foreach \xt in {11}{
\foreach \ait in {9,11,13}
\draw[->] (mat-\xt-1) -- (mat-\ait-2);}
\foreach \xh in {17}{
\foreach \aih in {15,17,19}
\draw[->] (mat-\xh-1) -- (mat-\aih-2);}
\foreach \ai in {3,9,15}{
\foreach \hi in {5}
\draw[->] (mat-\ai-2) -- (mat-\hi-3);}
\foreach \ai in {5,11,17}{
\foreach \hi in {11}
\draw[->] (mat-\ai-2) -- (mat-\hi-3);}
\foreach \ai in {7,13,19}{
\foreach \hi in {17}
\draw[->] (mat-\ai-2) -- (mat-\hi-3);}
\foreach \hi in {5,11,17}{
\foreach \z in {11}
\draw[->] (mat-\hi-3) -- (mat-\z-4);}
\end{tikzpicture}
\end{document}
答案1
回答最初的问题
您在这个网站上很快会学到的一件事是,这里有很多有用的信息,只需稍微搜索一下就可以很容易地找到。以下问题应该可以帮助您入门。如果您无法根据自己的特定需求调整这些问题,那么您可以使用最小工作示例您正在使用的代码,人们会很乐意为您提供帮助。
更新问题的答案
以下是对您发布的示例代码的一些调整。
- 将节点中的字体设置为
\small
- 设置文本宽度以
1.5em
使所有节点大小相同 - 将节点中的对齐设置为
center
- 稍微减小了行距(改为
-.35cm
)
你画的网络已经很大了,所以把图弄得太小并不容易。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[plain/.style={draw=none,fill=none},
net/.style={matrix of nodes,
nodes={draw,circle},
nodes in empty cells,
column sep=1.3cm,
row sep=-.35cm,
text width=1.5em,align=center, font=\small
},
>=latex,]
\matrix[net] (mat) {
|[plain]| {Input\\layer} &|[plain]| {E\\Function} &|[plain]| {H\\Function} &
|[plain]| {Output\\ layer} \\
|[plain]| \\
|[plain]| & {$A_{11}$} \\
|[plain]| \\
{$x_1$} & {$A_{12}$}& {$h_{1}$}\\
|[plain]| &|[plain]| {\textbf{$\vdots$}}& |[plain]| \\
|[plain]| & {$A_{1n}$}&|[plain]| &|[plain]| \\
|[plain]| \\
|[plain]| & {$A_{21}$} &|[plain]| &|[plain]|\\
|[plain]| \\
{$x_2$} & {$A_{22}$}& {$h_{2}$}&{z}\\
|[plain]| &|[plain]| {\textbf{$\vdots$}}& |[plain]| \\
|[plain]| & {$A_{2n}$} \\
|[plain]| \\
|[plain]| & {$A_{m1}$} \\
|[plain]| \\
{$x_m$} & {$A_{m2}$}& {$h_{n}$}\\
|[plain]| &|[plain]| {\textbf{$\vdots$}}& |[plain]| \\
|[plain]| & {$A_{mn}$} \\
};
\foreach \xo in {5}{
\foreach \aio in {3,5,7}
\draw[->] (mat-\xo-1) -- (mat-\aio-2);}
\foreach \xt in {11}{
\foreach \ait in {9,11,13}
\draw[->] (mat-\xt-1) -- (mat-\ait-2);}
\foreach \xh in {17}{
\foreach \aih in {15,17,19}
\draw[->] (mat-\xh-1) -- (mat-\aih-2);}
\foreach \ai in {3,9,15}{
\foreach \hi in {5}
\draw[->] (mat-\ai-2) -- (mat-\hi-3);}
\foreach \ai in {5,11,17}{
\foreach \hi in {11}
\draw[->] (mat-\ai-2) -- (mat-\hi-3);}
\foreach \ai in {7,13,19}{
\foreach \hi in {17}
\draw[->] (mat-\ai-2) -- (mat-\hi-3);}
\foreach \hi in {5,11,17}{
\foreach \z in {11}
\draw[->] (mat-\hi-3) -- (mat-\z-4);}
\end{tikzpicture}
\end{document}
答案2
Alan Munn 提供了有用的链接,并且有解决此问题的软件包,但这里有一些简单的 tikz 代码可以帮助您入门。
\documentclass[12t,crop]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \x in {0,1,2} \node[circle,draw] (L\x) at (0,2*\x) {$x_\x$};
\foreach \x in {0,1,2} \node[circle,draw] (R\x) at (2,2*\x+1) {$y_\x$};
\draw[->] (L0)--(R1);
\end{tikzpicture}
\end{document}