將 .mat 檔案匯入到 pgfplots

將 .mat 檔案匯入到 pgfplots

我正在使用它pgfplots來創建圖形,並且我有一組從Matlab.它是在.mat格式中。資料的形式為(兩列)

(1,0.2)

(1,0.3)

...

(1,0.2)

...

(2,0.4)

(2,0.1)

...

中的散點圖pgfplots是合適的。我想使用 直接匯入此文件pgfplots。不幸的是,下面的程式碼似乎不起作用。

\documentclass{article}
\usepackage{pgfplots}
\usepackage{xcolor}

\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot+[scatter]
table{test.mat};
\end{axis}
\end{tikzpicture}
\end{figure}

\end{document} 

有人知道如何匯入這些數據嗎?由於大小有點大,因此不可能將每個範例複製到程式碼中。

答案1

這是因為.mat檔案是二進位格式,而 TeX 無法讀取二進位檔案。我不知道如何從文件中讀取二進制格式,但更方便的方法是將數組作為列存儲在高矩陣中。

假設您的資料列 a、b、c 具有相同的長度(否則用 NaN 或 Inf 填充缺少的條目,以便 pgfplots 可以丟棄它)。這可以在 matlab 中透過以下方式完成

Mymatrix = [a b c];
save('myfile.txt', 'Mymatrix', '-ascii','-double');

這將以沒有標題的純文字格式儲存陣列。我沒有檢查檔案名稱段是否支援完整路徑,但應該是可能的。

一般來說,我建議不要在Mymatrix.因為matlab是一個很棒的軟體。

答案2

在較新的 Matlab 版本中,建議的方法是從陣列產生表並將該表寫入 CSV 檔案。該表有一個標題行,其中包含列名稱,並且也會寫入 CSV。看MATLAB 答案

相關內容