Импорт файла .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

Связанный контент