
我正在使用它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 答案