.mat 파일을 pgfplots로 가져오기

.mat 파일을 pgfplots로 가져오기

나는 pgfplots그림을 만드는 데 을 사용하고 있으며 에서 생성된 (대규모) 시뮬레이션 데이터 세트를 가지고 있습니다 Matlab. 형식 으로 되어 있습니다 .mat. 데이터 형식은 다음과 같습니다(2열).

(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가 있다고 가정합니다(그렇지 않으면 pgfplots가 이를 삭제할 수 있도록 누락된 항목을 NaN 또는 Inf로 채웁니다). 이는 MATLAB에서 다음을 통해 수행할 수 있습니다.

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

이렇게 하면 헤더가 없는 일반 텍스트 형식으로 배열이 저장됩니다. 파일 이름 필드에서 전체 경로가 지원되는지 확인하지 않았지만 가능할 것입니다.

일반적으로 Mymatrix. MATLAB은 훌륭한 소프트웨어이기 때문입니다.

답변2

최신 Matlab 버전에서는 배열에서 테이블을 생성하고 테이블을 CSV 파일에 쓰는 것이 권장됩니다. 테이블에는 열 이름을 포함하고 CSV에도 기록되는 헤더 행이 있습니다. 보다MATLAB 답변

관련 정보