2

matlab2tikzmatlab/octave図をtikzコードに変換するための優れたパッケージです。

ただし、図に多くの点が含まれている場合、結果の tikz コードは latex でタイプセットするには非常に重くなります。場合によっては、次のメッセージが表示されてコンパイルが失敗することもありますTeX capacity exceeded, sorry

これを修正する方法はありますか?

4

2 に答える 2

4

matlab2tikztikz-pgf への変換中に数値をダウンサンプリングする非常に賢いオプションがあります。といいminimumPointsDistanceます。これにより、ほとんどの場合、状況が改善されます。

ただし、保持されるポイントの実際の数が非常に少なくなると、カーブの特定の「硬い」領域が歪むことがあります。これを次の図に示します

ここに画像の説明を入力

青い曲線 (1184 ポイント) はオリジナルで、赤い曲線 (117 ポイント) は縮小されたものです。歪みが目立ちます。

これに対処し、同時にポイント数を低く抑えるために、より効果的な新しいポイント削減アルゴリズムを作成しました (ただし、速度が遅くなる場合があります)。結果(赤い曲線が116点)

ここに画像の説明を入力

明らかに歪みがなくなっています。

しかし、まだあります

もう一つのデメリット

両方のアルゴリズムに存在します。図のバッチを tikz に変換する場合、通常、縮小されたすべての図に対して均一な品質が求められます。しかし、通常minimumPointsDistanceは図ごとに異なる設定を行う必要があり、結果は実際には間隔 [min_y, max_y] と [min_x, max_x] のサイズや図中の点数。

したがって、この問題を克服しminimumPointsDistance、すべての図に対して均一に特定の値を設定できるようにするために、均一な品質の縮小バージョンを作成するために、正規化が使用され、minimumPointsDistance「内部的に」印刷された紙の実際のサイズを参照します。形。

ここから変更した matlab2tikz.m ファイルを手順と共にダウンロードできます。

徹底的なテストは行われていないことに注意してください

于 2012-08-16T17:22:55.347 に答える
2

(コメントには少し長いです)

matlabfragを使用すると、図をepsに変換し、LaTeXをコンパイルすると、文字列データをラテックス文字列に置き換えます。このようにして、サンプル数が多すぎるという問題は発生しません。高解像度のベクター図形を保持したいので、サブサンプリングは(もちろん、100kポイントがない限り)非常に悪いです。

例:http ://www.mediafire.com/view/?atstyyu4bj198wp

于 2012-08-16T18:19:55.270 に答える