ผู้ใช้ MATLAB จะมีความรู้สึกร่วมกันอยู่อย่างหนึ่งคือ คู่มือไม่ดี วันนี้เพื่อนมาถามปัญหาที่ค้างคาใจ
อยู่นาน ซึ่งปัญาคือ
ต้องการพล็อตกราฟ โดยพล็อตกราฟทีละสิบข้อมูล โดยในแต่ละข้อมูลจะต้องมีสีต่างกัน
ไม่เคยทำนะครับ อย่างเก่งผมก็แค่พล็อตทีละสองหรือสามข้อมูลแล้วให้ MATLAB กำหนดสีให้เอง
ซึ่งจะใช้วิธีถึก ๆ ดังนี้
plot(x,y1,x,y2)
MATLAB ก็จะเลือกสีให้ ถ้าข้อมูลเพิ่มเป็นซักสามสิบหล่ะ คือมี y1 ถึง y10 ไอ้การทำแบบข้างบนนั้น
มันไม่ได้ซะแล้ว ที่สำคัญสีที่ให้โดยอัตโนมัตินั้นมีแค่ 8 สีเอง ซึ่งหนึ่งในนั้นเป็นสีขาว
เรามาเริ่มต้นทำความเข้าใจว่าเราจะพล็อตข้อมูล y1 ถึง y10 ในคราวเดียวได้อย่างไรก่อน วิธีการก็
ทำการสร้างเมตริกซ์ของข้อมูลที่จะพล็อต ตัวอย่างเช่น
x = 0:pi/20:4*pi;
A = ones(length(x),10); % กำหนดขนาดของเมตริกซ์เพื่อเพิ่มความเร็วในการคำนวณ
for i = 1:10
A(:,i) = sin(x-i/5)’; % เก็บข้อมูลเป็นเวกเตอร์ในคอลัมน์ของเมตริกซ์ A
endplot(x,A);
ผลที่ได้จะเห็นได้อย่างชัดเจนว่าเริ่มมีสีซ้ำกัน ทางแก้ก็คือกำหนดสีให้ MATLAB ใหม่ดังนี้
C = zeros(10,3);
for i = 1:10
C(i,1) = 0.1*i;
end
set(gcf,’DefaultAxesColorOrder’,C);
แล้วก็ตามด้วยคำสั่งในการพล็อตกราฟข้างต้น
ผลลัพธ์ที่ได้จะเป็นดังข้างบน
และแน่นอนเราหาทางกลับไม่เจอหรอก ต้องพลิกคู่มืออีกหลายตลบแล้วก็ลองผิดลองถูก จริง ๆ ก็แค่
reset(gcf); หรือ set(gcf,’default’);
ทุกอย่างก็จะกลับไปเหมือนเดิม
หมายเหตุ: ทุกอย่างเอามาจากคู่มือของ MATLAB ทั้งหมด
Filed under: MATLAB, Tips and Tricks | Tagged: บันทึกช่วยจำ, MATLAB, Plot




สวัสดีค่ะ คือหนูมีปัญหาเรื่อง matlab จะปรึกษาค่ะ เีกี่ยวกับเรื่องเขียนโปรแกรมแล้วจะเก็บข้อมูลให้้เป็นรูปอะเรย์ เช่น หนูต้องการประกาศให้ตัวแปร output เป็นตัวแปรอะเรย์ที่เอาไว้เก็บข้อความที่้เป็นอะเรย์ จะประกาศ output อย่างไรดีคะ
ไม่ทราบว่าพี่จะเข้าใจคำถามหนูหรือไม่ ถ้าไม่รบกวนพี่ช่วยตอบ E-mail มาหน่อยนะคะ
ตอบผ่านอีเมลไปแล้ว
พี่คับ พอดีผมมีปัญหาเกี่ยวกับ การทำ
matlab image processing ครับ
อยากจะทราบเกี่ยวกับการเล่น ไฟล์ video ใน matlab
และการ เลือกเฟรมของไฟล์ video ที่ผมทำการเลือกเอาไว้ ด้วย
คับ ยังไงก็ช่วยตอบผมโดนการ add msn มาทางเมลล์ก็ได้นะ
คับ ผมออนอยู่ทุกวัน
ถ้าผมอยากplot กราฟ sine โดยไล่โทนสีจากสีอ่อนไปสีเข้ม ไม่ทราบว่าmatlab จะทำได้ไหมครับ
นักศึกษาลาดกระบัง: ไม่เข้าใจคำถามครับ หมายถึงในกราฟ sine 2 D มีการไล่สีหรืออย่างไร