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

ใช้ Matlab แล้วเคยประสบปัญหาแบบนี้ไหมครับ

"ต้องการพล็อตกราฟใหม่ให้เหมือนรูปเก่า แต่หา m-file ไม่เจอ"

และมีปัญหาต่อเนื่องมา

"มีรูปสองรูปที่พล็อตไว้แล้วต้องการเปรียบเทียบบนแกนเดียวกัน แต่ข้อมูลที่พล็อตไว้ค่าบนแกน x ไม่เหมือนกัน"

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

โม้ซะเยอะ ถ้าเรามีกราฟ Matlab ในมือ แล้วทำ m-file ที่ใช้งานหาย หรือหาไม่เจอ แล้วต้องการนำข้อมูลจากกราฟที่พล็อตไปพล็อตเปรียบเทียบกับข้อมูลอื่น ในคู่มือ Matlab นั้นมีวิธีการ(ซ่อน)อยู่ในคู่มือ ซึ่งน้อยคนนักที่จะหาเจอ ผมเจอวิธีการนี้ตั้งแต่ปี 2007 ได้จดบันทึกเอาไว้ วันนี้เอามาเขียนใหม่แล้วกันครับ

ให้เลือกกราฟที่เราต้องการ จากนั้นให้ใช้คำสั่ง findobj เพื่อสร้างตัวแปรวัตถุของกราฟนั้น ๆ จากนั้นก็ดึงข้อมูลในแกน x และ y มาใช้ได้เลย ตามคำสั่งข้างล่าง

ในกรณีมีข้อมูลมากกว่าหนึ่งชุด เราสามารถกำหนดเลขดัชนีสำหรับข้อมูลในกราฟได้ดังนี้

เสร็จแล้วเราก็สามารถนำข้อมูลจากกราฟไปใช้ได้ตามชอบใจครับ ความรู้ตรงนี้มีประโยชน์แน่นอนครับ อย่าลืม