在 LaTeX 中绘制神经模糊网络图

在 LaTeX 中绘制神经模糊网络图

这是神经模糊网络图。我不知道如何用 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}

在此处输入图片描述

相关内容