使用 tikz 和 matlab 数据绘制问题

使用 tikz 和 matlab 数据绘制问题

我使用命令“dlmwrite('heat.txt',[x',u],'delimiter', '\t')”从 matlab 图形中提取数据。它返回一个包含 3 列数字的文本文件(第一列是横坐标 x,其他是 2 个函数 f(x) 和 g(x))。我想在 Latex 中绘制它,因此我写了以下内容:

\begin{tikzpicture}
\begin{axis}
\addplot {heat.txt};
\end{axis}
\end{tikzpicture}

它不工作,我得到错误:!包 PGF 数学错误:未知函数“heat”(在“heat.txt”中)。然后,我把文件[先跳过]在 \addplot 行中,它正在运行,我有 (x,f(x)) 的图形。我不明白,因为我的文本文件只有数字。更重要的是,我还想绘制 (x,g(x))。所以我写道:

\begin{tikzpicture}
\begin{axis}
\addplot file[skip first] table[x index=0,y index=2] {heat.txt};
\end{axis}
\end{tikzpicture}

但它不起作用,错误是:!包 pgfplots 错误:抱歉,无法打开 plot file{t}。我尝试不使用“file[skip first]”,但错误仍然相同。

我真不明白。

答案1

要从文件绘制坐标,请使用

\addplot table [<column selection>]{<file name>};

如果缺少的可选参数table,则第一列(带有索引0)将用作x值,第二列(带有索引1)将用作y值。

f(x)使用文件进行绘图

\begin{tikzpicture}
\begin{axis}
\addplot table {heat.txt};
\end{axis}
\end{tikzpicture}

应该管用。

要绘制第三列,您可以使用:

\begin{tikzpicture}
\begin{axis}
\addplot table[x index=0,y index=2] {heat.txt};
\end{axis}
\end{tikzpicture}

来自手册:

如果您有数据文件,通常应该使用\addplot table。输入类型\addplot file几乎相同,但功能要小得多。它只是为了向后兼容而保留的。

相关内容