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
は物事を滑らかにします。