Category Archives: บันทึกช่วยจำ

Plot2SVG MATLAB and Inkscape

หลายคงคงรู้ว่าเวลาเอารูปจาก MATLAB ไปใส่ในเอกสาร LaTeX นั้น ฟอนต์ที่อยู่ในกราฟนั้นจะไม่เหมือนกับเอกสาร ปัญหานี้จะว่าใหญ่ก็ไม่เชิง จะว่าเล็กก็ไม่เชิง ขึ้นอยู่กับมุมมองของแต่ละคน แน่นอนสำหรับผมนั้นแค่เอารูปแบบ pdf หรือ eps ไปใช้ในเอกสารแล้วภาพไม่แตก พิมพ์ออกมาสวยงามกว่าชาวบ้านเขาก็พอแล้ว แต่ปรากฏว่าปัญหานี้ใหญ่พอสมควรสำหรับคนเยอรมันที่ผมทำงานด้วย จริง ๆ มีวิธีแก้ไขหลายวิธีปัญหานี้ได้พูดกันอย่างกว้างขวางที่ What is the best way to include Matlab graphics รวมถึงวิธีแก้ไขด้วยครับ  วิธีที่ดีที่สุดให้ดูคำตอบของคุณ Shuhao Cao ที่มีรูปเยอะ ๆ ซึ่งคุณ Shuhao Cao ได้แสดงปัญหาของการใช้ matlab2tikz ซึ่งมีผู้นิยมใช้กันมาก

ปัญหาของ XeLaTeX กับ MiKTeX

ในช่วงที่ผ่านมา ไม่ได้ยุ่งเกี่ยวอะไรกับ pdfLaTeX มานานมากแล้ว งานส่วนใหญ่หันไปใช้ XeLaTeX หมดแล้ว เพราะความสามารถที่มากกว่า ใช้ฟอนต์ของ OS นั้น ๆ ได้ ใช้งานกับภาษาไทยได้ดี  ช่วงนี้ถ้าใคร Update MiKTeX แล้วหล่ะก็ ก็จะมีปัญหากับแพ็กเกจสองตัวคือ expl3 กับ xpackages  ซึ่งถูกแทนที่ด้วย l3kernel กับ l3packages แต่ตอนนี้ MiKTeX ยังไม่ได้แก้ไข ผู้ใช้จะต้องลงเองนะครับ โดยใช้ตัวจัดการแพ็กเกจของ MiKTeX ครับ ปัญหาก็จะหมดไป  

ทักทายประจำเดือนมกราคม และ กุมภาพันธ์ ที่แสนยุ่ง

ช่วงนี้ที่ฮัมบวร์กไม่หนาวเท่าไหร่แล้ว แต่อากาศเปลี่ยนบ่อยพอ ๆ กับอารมณ์ผมเลย เนื้อหาที่นำมาเขียนก็น้อยลงไปเพราะอะไรที่อยากรู้ก็หาได้ที่ TeX - LaTeX - Stack Exchange หมด ใครสนใจฝากคำถามหรือคำตอบก็เชิญได้ครับ ไม่ต้องกลัวเรื่องภาษาอังกฤษ เพราะจะมีคนคอยแก้ไขทั้งคำถามคำตอบให้ เท่าที่เจอปัญหาถ้าไม่ใช่เรื่องครอบครัวแล้วมีคนตอบให้หมด คนตอบเป็นตั้งแต่ระดับทั่วไปจนถึงเซียนจุติมาเกิด ประเภทคาบ TeX book มาเกิดก็มี อ่านมาก ๆ บางทีก็รู้สีกโง่เหมือนกัน ตัวอย่างคำถามที่น่าสนใจคือ ถ้าต้องการจัดรูปดังรูปข้างล่างจะต้องทำอย่างไร มีคนถามไปไม่นานหรอกครับ เจ้าพ่อ pstricks อย่างคุณ Herbert ก็มาตอบ วิธีการก็ใช้แพ็กเกจ subfig ตามรหัสต้นข้างล่าง [crayon-59992605a34ef465385554/] ตอบเสร็จมีคนมาให้คะแนน มีคนมาให้ความเห็น มีคนมาเสนอวิธีการใหม่ ๆ

VirtualBox and Windows 7

ตั้งแต่เปลี่ยนมาใช้ Windows 7  64 bit ก็ต้องจำใช้ Linux ผ่าน cygwin ซึ่งไม่ค่อยดีนัก ครั้งจะรอ colinux 64 bit ก็ไม่ทันใจ และคาดว่าอีกนานคงจะเสร็จ จริง ๆแล้วมีคนแนะนำให้ใช้ VirtualBox นานแล้ว ติดตรงที่รู้สึกไม่ดีกับโปรแกรมนี้สมัยแรก ๆ คราวนี้ได้เวลาทดสอบ ด้วยเหตุผลว่าเครื่องเร็วขึ้น มีหน่วยความจำมหาศาล 4 GB และหลาย ๆ อย่างพร้อมสำหรับ Windows 7 Professional แล้ว  ครั้งนี้ก็เลยใช้ใจที่ตั้งมั่นทดลองซักหน่อย  ขั้นตอนที่ยุ่งยากที่สุดเห็นจะเป็นการโหลดไฟล์ Ubuntu 10.10 ขนาดใหญ่ยักษ์ 600

ทักทายประจำเดือนธันวาคม เดือนที่หิมะท่วมฮัมบวร์ก

ปีนี้ที่ฮัมบวร์กเริ่มหนาวจริง ๆ จัง ๆ ตั้งแต่เดือนพฤศจิกายน แค่เดือนสิบเอ็ดหิมะก็เริ่มตกแล้ว และก็อยู่ยืดยาวมาจนถึงทุกวันนี้ (บางวันเหลือซากหิมะให้เห็นเล็กน้อย ก็เลยถือได้ว่าไม่ได้หายไป) วันที่เขียนนี้เองที่พายุหิมะถล่มภาคเหนือของเยอรมัน ทำให้โรงเรียนถึงกับต้องปิดหนึ่งวัน ปีนี้เยอรมันตุนเกลือไว้เพิ่ม 10% จากปีที่แล้ว ซึ่งอาจจะไม่พอก็ได้ (เกลือเอาไว้ละลายหิมะตามทางเดิน) เพราะหิมะมาเยอะเหลือเกิน จากคำบอกเล่าของคนเยอรมันที่มีอายุหน่อย ก็บอกว่าหิมะจะตกเยอะเป็นรอบ ๆ เช่นอาจจะ 10 ปี หรือ 20 ปี ก็ว่ากันไป ที่เยอรมันการพยากรณ์นั้นค่อนข้างจะแม่นยำ อย่างวันนี้เขาบอกว่าหิมะจะตกหนักตอนเที่ยง ๆ แล้วจะตกยาวไปถึงกลางคืน โดยที่ตอนเย็น ๆ หิมะจะเป็นหิมะชนิดเปียก ให้ขับรถระวัง ๆ บอกกันตั้งแต่เช้า 10 โมง ยังไม่มีแววว่าหิมะจะถล่ม

MATLAB; you may see different results on different platforms.

หลายคนอาจจะเจอปัญหานี้ ผลจากการคำนวณของ MATLAB บนเครื่องคอมพิวเตอร์สองเครื่องให้ค่าไม่เหมือนกัน ลูกศิษย์อาจจะบอกว่าที่บ้านผมทำได้ ได้ผลดี แต่ทำไมเครื่องที่มหาวิทยาลัยให้ผลไม่เหมือนกัน ในขณะที่อาจารย์ส่ายหน้าและไม่เชื่อ เรื่องนี้ต้องชม MATLAB ในเรื่องการบริการพอสมควร ผมส่งคำถามไปก็มีการตอบกลับมาไม่เกินสองวัน มีวิศวกรคอยทดสอบปัญหาให้ตลอดเวลา  เรื่องมีอยู่ว่าผมทำงานที่บ้านตอนกลางคืน ในขณะที่ทำงานที่ทำงานตอนกลางวัน อยู่มาวันหนึ่งก็แบกเครื่องโน้ตบุ๊คไปทำงานด้วย นัยว่าสองเครื่องย่อมทำงานการปรับแต่งพารามิเตอร์ได้ดีกว่าเครื่องเดียว ผลปรากฎว่าสองเครื่องให้ผลไม่เหมือนกันครับ สมมุติฐานแรกเลย เครื่องโน้ตบุ๊คผมเป็น AMD  รัน windows 7 pro (64 bits) และใช้ MATLAB 2010b ในขณะที่เครื่องที่ทำงานเป็น Intel และรัน windows xp sp3 (32 bits)  และใช้ MATLAB

ทักทายประจำเดือนพฤศจิกายน สายลมแห่งการเปลี่ยนแปลง

ทักทายประจำเดือน กลับมาพบกันอีกครั้งแล้วนะครับ ช่วงนี้ผมก็เรื่อย ๆ ทำงานหนักขึ้นเล่น facebook น้อยลงมาก ๆ และลดการเสนอแนะความเห็นในที่ต่าง ๆ แบบน่าตกใจ ทั้งความเห็นที่ไปกวนคนอื่นหรือเป็นการแนะนำดี ๆ ไม่รู้เป็นอะไรเหมือนกัน ตอนนี้ผมใช้ WinEDT 6.0 เต็มตัวแล้ว พึ่งจ่ายเงินลงทะเบียนให้กับ Dr. Alex ไป ก็ประมาณ 7  ร้อยบาทเองครับ (อัฟเกรดเวอร์ชันนักเรียน ยังมีความเป็นนักเรียนอยู่ก็ใช้สิทธิเต็มที่) สำหรับบรรณาธิกรณ์ (editor) ตัวนี้ หลังจากที่ได้ออกเวอร์ชันปรับปรุงมาเป็นรอบที่สอง การตั้งค่าต่าง ๆ ก็ง่ายขึ้นมาก ไว้จะเขียนวิจารณ์ในวันหลัง ข้อดีของการปรับแต่งค่าต่าง ๆ ของ WinEDT 6.0

การดึงข้อมูลจากกราฟใน Matlab

ใช้ Matlab แล้วเคยประสบปัญหาแบบนี้ไหมครับ "ต้องการพล็อตกราฟใหม่ให้เหมือนรูปเก่า แต่หา m-file ไม่เจอ" และมีปัญหาต่อเนื่องมา "มีรูปสองรูปที่พล็อตไว้แล้วต้องการเปรียบเทียบบนแกนเดียวกัน แต่ข้อมูลที่พล็อตไว้ค่าบนแกน x ไม่เหมือนกัน" ถ้าไม่เคยมีปัญหาจำพวกนี้ ก็ขอยินดีด้วยครับ ที่คุณเป็นนักจัดการข้อมูลที่เก่งและเป็นระเบียบมาก แต่คนส่วนใหญ่ไม่ใช่อย่างนั้น บางส่วนก็แก้ปัญหาด้วยการทำใหม่ทั้งหมด ซึ่งเสียเวลามาก  บางพวกก็แก้ด้วยการไม่ทำ หรือเปรียบเทียบแบบชุ่ย ๆ (ถ้าเป็นนักเรียนนักศึกษาก็ขึ้นอยู่แต่บุญแต่กรรม บางครั้งอาจารย์ที่ปรึกษาก็ไม่ยอมกับบางงาน บางงานก็ยอมเฉย หาบรรทัดฐานไม่ได้ อาจารย์พวกนี้น่าจะไปขายโอเลี้ยงมากว่าเป็นอาจารย์ครับ เพราะโอเลี้ยงบางทีก็ให้มาก ให้น้อย แตกต่างกันตามอารมณ์) หรือไม่ก็ใช้เคลมว่าของดูเองดีอย่างโน้นดีอย่างนี้ แต่ไม่แสดงการเปรียบเทียบ โม้ซะเยอะ ถ้าเรามีกราฟ Matlab ในมือ แล้วทำ m-file ที่ใช้งานหาย หรือหาไม่เจอ แล้วต้องการนำข้อมูลจากกราฟที่พล็อตไปพล็อตเปรียบเทียบกับข้อมูลอื่น

MATLAB 64 bit

ใครที่ใช้ MATLAB เวอร์ชัน 64 bit อยู่แล้วต้องการจะคอมไพล์ mex ไฟล์หล่ะก็ ต้องแสดงความเสียใช้ด้วยเพราะมันไม่มีคอมไพเลอร์ติดมาให้  แล้วทำอย่างไรหล่ะครับ งานนี้ หลาย ๆ งานจำเป็นซะด้วย ง่ายมากครับ เข้าไปที่หน้านี้ Supported and Compatible Compilers - Release 2010b แล้วก็เลือกเอาตัวฟรี ๆ ของ Microsoft มาซักตัว เดี๋ยวนี้เค้าใจดีแจกฟรีเยอะ  ดีจัง

การเพิ่ม List of Figures กับ List of Tables ลงในสารบัญ

เป็นเรื่องใหม่ที่พึ่งรู้ว่ามันเป็นปัญหา สืบเนื่องจากการใช้คำสั่ง addcontentsline{toc}{chapter}{bibname} เพื่อเพิ่มรายชื่อบทลงในสารบัญนั้น ซึ่งโดยปกติจะใช้สั่งให้มีรายชื่อของสารบัญตาราง สารบัญรูป และอื่น ๆ ลงในสารบัญ และสิ่งที่ผมพึ่งรู้ก็คือคำสั่งนี้จะแสดงเลขหน้าผิดเสมอ แก้อย่างไรก็ไม่สำเร็จ ค้นไปค้นมาเลยได้ความรู้จาก Patrick Jöckel's ดังนี้ ในการเพิ่มรายชื่อบทที่สร้างขึ้นเองลงในหน้าสารบัญ จำพวกกิจกรรมประกาศ บทคัดย่อ ฯลฯ การใช้คำสั่ง [crayon-59992605b8e13898438022/] นั้นจะต้องทำหลังคำสั่ง chapter ของบทนั้น ๆ กรณีต้องการเพิ่มรายการของสารบัญให้มี สารบัญ สารบัญตาราง สารบัญรูป และเอกสารอ้างอิง สามารถทำได้โดยใช้แพ็กเกจ tocnatbibind ซึ่งจะทำให้เลขหน้าเป็นไปตามจริง ซึ่งได้ลองกับแพ็กเกจ ThaiLaTeX แล้วไม่มีปัญหาแต่อย่างใดครับ สำหรับวิธีการใช้แพ็กเกจนี้ก็ง่าย ๆ ครับ แค่เรียกใช้แพ็กเกจดังกล่าวก็พอ

Control Tutorials for Matlab

ปัจจุบันถ้าใครเข้าเว็บ Matworks บ่อย ๆ จะพบว่าตัวเว็บมีบริการทางการศึกษาฟรี ๆ ให้มากมาย เพียงแค่สมัครสมาชิกก็จะได้รับสิทธิ์เข้าไปดูไฟล์ วิดีโอต่าง ๆ มากมาย รวมทั้งไฟล์ในหนังสือต่าง ๆ ด้วย ช่วงนี้ต้องกลับมาทำงานกับ Matlab อีกครั้ง ในขณะที่มีความตั้งใจอย่างยิ่งที่จะเปลี่ยนไปใช้ของฟรีอย่าง Scilab ที่นับวันจะยิ่งดูดีขึ้นมาก  แต่ต้องขอบอกไว้ก่อนนะครับ โปรแกรมฟรี ๆ เหล่านี้ในอนาคตเมื่อมีคนนิยมมาก สิ่งที่ตามมาก็คือเรื่องของการบริการ ถ้าตัวผู้ผลิตต้องการจะบริการผู้ใช้เต็มเวลา การเรียกเก็บเงินตามค่าแรงก็คงจะมีเป็นปกติ เหมือนเช่น โปรแกรมตระกูล M พวก Maple, Mupad และ Mathematica ที่เมื่อก่อนก็ฟรี แต่ภายหลังต้องใช้เวลาในการตอบคำถามผู้ใช้มาก ๆ ก็ต้องเก็บเงินบ้าง เก็บไปเก็บมาติดใจก็เลยเก็บแพงมาก