编辑1:

编辑1:

我正在尝试编写一个包含嵌套 for 循环的算法,如下所示:

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\title{Algorithm example}

\author{\LaTeX{}}

\date{\today}

\begin{document}
\maketitle

\section{Gibbs sampling Algorithm}

Algorithms can be included using the commands as shown in algorithm \ref{alg:gibbs}.

\begin{algorithm}
\caption{Collapsed Gibbs sampling algorithm for inference}\label{alg:gibbs}
\begin{algorithmic}[1]
\State Choose initial $z$ and $\xi$.
\For{$T$ iterations}
  \For{$D$ Subjects}
    \For{$N_d$ time segments}
      \State do something
    \EndFor
  \EndFor
\EndFor
\end{algorithmic}
\end{algorithm}

\end{document}

结果如下: 在此处输入图片描述

...我收到以下错误:

Undefined control sequence
Package algorithmicx: Some blocks are not closed!!!

我正在使用 IEEE 的在线模板,并且还检查了关于带有算法的嵌套 for 循环的问题,没有运气。


编辑1:

更改\Endfor\EndFor。错误消失了,但是输出相同。

答案1

我猜您正在以“批处理模式”编译您的文档,它不会在出现错误时停止,而是尝试继续,跳过问题。

对于您来说,完整的错误信息如下:

! Undefined control sequence.
l.16 \Endfor

因此,问题是该命令\Endfor无法被识别,但是 tex 仍然尝试继续,并且随后产生了另一个关于块未关闭的警报。

\EndFor通过写入(这是该命令的正确拼写)而不是可以解决问题\Endfor

如果您想在输出中看到“end for”,请删除noend包中的选项;-)

相关内容