2016-11-29 9 views
1

Matlab図形をベクター化された形式でラテックスに含めることができますが、すべてのテキストにLaTeX MATLABフォントが含まれています。私は簡単な図形に最適なMATLAB関数matlab2tikzを使用していますが、今では数値が多すぎてエラーが発生します。したがってmatlab2tikzは適切ではありません。matlabfragまたは代替を使用してLaTeXでMatlab図形を作成

matlabfrag私は自分が望むものを達成すると思っていますが、LaTeXでスクリプトを実行すると、ユーザーガイドの詳細でFile not foundというエラーが発生します。

これは私のコードです:FileNamematlabfragが作成する.EPSと.texの名前です

\documentclass{article} 
\usepackage{pstool} 
\begin{document} 
\psfragfig{FileName} 
\end{document} 

。誰もがこの問題に遭遇しましたか?または、他の機能/方法を使用することをお勧めしますか?

私は私のアドバイスは、あなたのワークフローを再考するだろうのWindows 7上

答えて

0

をTexmakerを使用しています。

代わりに数字をプロットするために、あなたのラテックスコードを再利用開始、数字をプロットするとmatlab2tikzで常に変化する出力によってdissappointedされ、あなたのMatlabのコードを再利用するともうMATLABでプロットについては気にしないでください(少なくとも美しいプロットのためではない)。

matlab2tikzは、ラテックスパッケージpgfplotsに基づいてラテックスコードを生成しています。このパッケージの動作を理解することは、Matlabに似ていることを意図しているので、非常に簡単です。

だから、どうしても気にしないと、いつもmatlab2tikzさんがあなたの仕事をしてくれるのですか?何度も何度も結果に満足することができないからです。 pgfplots-codeをゼロから作成し、はMatlabからデータをロードするだけです。ここで

は、私は、ラテックス対応のテキストファイルを作成するために書いた便利な機能です:

w G0_mag G0_phase GF_mag GF_phase  
10.000000 40.865743 -169.818991 0.077716 -0.092491 
10.309866 40.345290 -169.511901 0.082456 -0.101188 
10.629333 39.825421 -169.196073 0.087474 -0.110690 
10.958700 39.306171 -168.871307 0.092787 -0.121071 
11.298273 38.787575 -168.537404 0.098411 -0.132411 

で:例えばボード線図の場合には、次のようになり

function output = saveData(filename, header, varargin) 

in = varargin; 

numCols = numel(in); 

if all(cellfun(@isvector, in)) 
    maxLength = max(cellfun(@numel, in)); 
    output = cell2mat(cellfun(@(x) [x(:); NaN(maxLength - numel(x) + 1,1)],in,'uni',0)); 
    fid = fopen(filename, 'w'); 
    fprintf(fid, [repmat('%s\t',1,numCols),'\r\n'], header{:}); 
    fclose(fid); 
    dlmwrite(filename,output,'-append','delimiter','\t','precision','%.6f','newline', 'pc'); 
else 
    disp('saveData: only vector inputs allowed') 
end 

end 

tikzpictureあなたはそのファイルをロードするだけで

\pgfplotstableread[skip first n=1]{mydata.txt}\mydata 

を保存することができます。変数\mydataに入ることができます。

pfgplotsデータをプロットする方法を確認します。あなたが直接\thisrowno{0}(混乱、私は知っている)して、テキストファイルの列にアクセスする場所あなたは、基本的なプロットコマンド\addplot

\addplot table [x expr= \thisrowno{0}, y expr= \thisrowno{3} ] from \mydata; 

があります。


多くのデータポイントにして、あなたの問題について:pgfplotsは物事をスピードアップするためのキーeach nth point={ ... }を提供しています。しかし、私はむしろMatlabのデータをフィルタリング/デシメートしたいのです。 他の方法でも可能ですが、データポイントが少なくてもsmoothは物事を滑らかにします。

関連する問題