
Я использую 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