سلام.
من روش ۲ را با استفاده از matlab2tikz 0.0.5 و Matlab R2008a انجام دادم و موفق بود. ولی با Matlab R2006b خطا میداد.
بله حق با شماست برنامهٔ matlab2tikz با Matlab R2008a مشکلی ندارد و با Matlab R2006b مشکل داشت که پست قبلی خودم را اصلاح خواهم کرد.
روش ۱ را نیز برای فایلهای eps که قبلا ساخته بودم با eps2pgf-0.7.0 امتحان کردم ولی خطا میداد:
Could not find the main class: net.sf.eps2pgf.Main
من با Java 1.5 امتحان کرده بودم مشکلی نداشتم. فایل eps خودتان را در شاخه eps2pgf قرار دهید و در همان شاخه Java را اجرا کنید.
همچنین من تفاوت روش ۳ با روش ۲ را متوجه نشدم.
در روش دوم شما از برنامهٔ matlab2tikz برای تبدیل یک نمودار کشیده شده به دستورات tikz استفاده میکنید. این برنامه که نمیداند دادههای شما بر اساس چه تابعی ایجاد شدهاند. فرض بفرمایید شما یک شکل سینوسی را رسم کردهاید. برنامه فوق کلی مختصات نقاط به همراه دستورات tikz مربوطه را برای شما تولید خواهد کرد. در حالیکه میتوان همان شکل را به چند دستور ساده tikz نوشت (روش سوم). پس در روش سوم خودمان مسئول تولید دستورات موردنیاز tikz خواهیم بود که شرط آن یاد داشتن دستورات آن است. ولی در نهایت کد tikz بهتری خواهیم داشت. کد زیر قسمتی از یک برنامه MATLAB من است که برای تولید یک فایل حاوی دستورات tikz موردنیاز برای رسم نمودار موردنظرم نوشتهام:
fprintf(fid_tex,'\\pgfplotstableread{%s}{\\table}\n',dataFileName);
fprintf(fid_tex,'\\begin{tikzpicture}\n');
. . .
fprintf(fid_tex,' ylabel=%s, xlabel=%s]\n',options.yLabel,options.xLabel);
for i=1:mNo
fprintf(fid_tex,'\\addplot+[smooth] table[x=dbNo,y=m%d] from \\table;\n',i);
end
fprintf(fid_tex,'\\legend{%s}\n',legendStr);
fprintf(fid_tex,'\\end{tikzpicture}\n');
همانگونه که برای رسم نمودارهایمان در MATLAB به راحتی از متغیرهای خودمان استفاده میکنیم در اینجا هم به راحتی میتوان از متغیرها استفاده کرد.
با توجه به اینکه به نظر میرسد شما تصاویر eps زیادی از قبل دارید من همان راه حل اول را برای شما مناسبتر میدانم.
ضمن اینکه در بارگزاری یک فایل eps لاتک پردازش خاصی انجام نمیدهد ولی در هنگام تولید یک نمودار tikz باید زمانی صرف پردازش این دستورات شود و اگر تعدا آنها زیاد باشد پردازش سندتان زمان بیشتری نیاز خواهد داشت.