
Estou usando pgfplots
para criar figuras e tenho um (grande) conjunto de dados de simulação gerados a partir de arquivos Matlab
. Está no .mat
formato. Os dados estão no formato (duas colunas)
(1,0.2)
(1,0.3)
...
(1,0.2)
...
(2,0.4)
(2,0.1)
...
Um gráfico de dispersão pgfplots
seria apropriado. Quero importar diretamente este arquivo usando pgfplots
. Infelizmente, o código a seguir parece não funcionar.
\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}
Alguém sabe como importar esses dados? Como o tamanho é um pouco grande, não é possível copiar todas as amostras no código.
Responder1
Isso se deve ao fato de que .mat
o arquivo é um formato binário e o TeX não pode ler binário. Não sei como é possível ler o formato binário de um arquivo, mas uma maneira bastante mais conveniente é armazenar as matrizes em uma matriz alta como colunas.
Suponha que você tenha as colunas de dados a,b,c com comprimento igual (caso contrário, preencha as entradas ausentes com NaN ou Inf para que o pgfplots possa descartá-las). Isso pode ser feito no matlab via
Mymatrix = [a b c];
save('myfile.txt', 'Mymatrix', '-ascii','-double');
Isso salvaria as matrizes em formato de texto simples, sem cabeçalhos. Não verifiquei se o caminho completo é suportado no campo do nome do arquivo, mas deveria ser possível.
Em geral, eu recomendaria evitar incluir nomes de colunas no arquivo Mymatrix
. Porque matlab é um ótimo software.
Responder2
Nas versões mais recentes do Matlab, a forma recomendada é gerar uma tabela a partir do array e gravar a tabela em um arquivo CSV. A tabela possui uma linha de cabeçalho que contém os nomes das colunas e também é gravada no CSV. VerRespostas do MATLAB