4. การรับค่า การแสดงผล และคำสั่งพื้นฐานที่ควรทราบ

4.1 การรับค่า

การรับข้อมูลจาก user หากเป็นการเขียน m-file ทั่วไปที่ไม่ใช่ GUI จะรับข้อมูลโดยใช้คำสั่ง input เท่านั้นก็เพียงพอแล้ว ซึ่งคำสั่งนี้มีรูปแบบการใช้งานอยู่ 2 รูปแบบคือ

- การรับข้อมูลประเภทตัวเลข

Data = input(‘Output text’);

- การรับข้อมูลประเภทตัวอักษร

Data = input(‘Output text’ , ‘s’);

ตัวอย่างเช่น



4.2 การแสดงผล

การแสดงผลส่วนมากใช้ 2 คำสั่งต่อไปนี้

- คำสั่ง disp()

คำสั่ง disp() นั้นจะแสดงข้อมูลที่อยู่ในวงเล็บออกทางหน้า command window ซึ่งเมื่อแสดงผลเสร็จแล้วจะขึ้นบรรทัดใหม่ให้โดยอัตโนมัติ แต่โปรดจำไว้ว่าคำสั่ง disp() ใช้แสดงข้อมูลได้ทีละ 1 ชุดเท่านั้น และข้อมูลที่แสดงผลต้องเป็นประเภทเดียวกันด้วย ตัวอย่างเช่น



คำสั่งแรก คือการ disp ตัวอักษร

คำสั่งที่สอง คือการ disp ตัวแปร

คำสั่งที่สาม คือการ disp ตัวอักษร ผสมตัวแปร ซึ่งผมได้อธิบายไปแล้วว่าคำสั่ง disp ใช้แสดงผลได้ทีละ 1 ชุดเท่านั้น เราจึงจำเป็นต้องใช้ เครื่องหมาย [  ] เพื่อรวมข้อมูลทั้ง 2 ให้เป็นข้อมูลชุดเดียวกัน ซึ่งจะเห็นว่าผลที่แสดงออกมานั้นมีแค่ a เพราะตัวแปร A เก็บค่า 12 เอาไว้ ซึ่งมันจะถูกแปลงเป็นค่า Ascii โดยอัตโนมัติ ซึ่งอักขระหมายเลข 12 นั้นไม่ใช่ตัวอักษร ดังนั้นเราจึงไม่เห็นตัวอักษรใดๆ

คำสั่งที่สี่ คือการ disp ข้อมูลผสมแบบถูกต้อง ซึ่งเราจำเป็นต้องแปลงตัวแปร A ให้เป็นข้อมูลประเภท char เสียก่อน โดยใช้คำสั่ง num2str ดังนั้นผลลัพธ์ที่ได้จึงแสดงออกมาเป็น a12


- คำสั่ง fprintf()

จริงๆ คำสั่งนี้ใช้ได้หลายอย่าง แต่ในหัวข้อนี้เราจะพูดถึงการใช้คำสั่งนี้เพื่อแสดงผลทางหน้าจอ command window เท่านั้น มาดูตัวอย่างการใช้คำสั่งนี้กันเลยครับ


%f คือการแสดงผลแบบตัวเลขทศนิยม ส่วนตัวเลข 4.2 หมายความว่าจองพื้นที่ไว้ 4 ช่อง และแสดงทศนิยม 2 ตำแหน่ง ส่วน %s คือการแสดงข้อมูลประเภท char และ %d คือการแสดงผลในรูปแบบตัวเลขที่เป็นจำนวนเต็ม โดยตัวเลข 03 หมายความว่าให้จองพื้นที่ไว้ 3 ช่อง ถ้าข้อมูลที่แสดงมีไม่ถึง 3 ตำแหน่ง ตำแหน่งที่เหลือก็จะถูกแทนด้วยเลข 0


4.3 คำสั่งเพิ่มเติมที่ควรทราบ

คำสั่ง
ตัวอย่าง
ความหมาย
isnan()
isnan(A)
ตรวจสอบว่าตัวแปร A เป็นค่า NaN หรือไม่
isempty()
isempty(A)
เช็คว่า A ว่าเปล่าหรือไม่
floor()
floor(A)
ปัดเศษของ A ทิ้ง
round()
round(A)
ปัดเศษของ A ถ้ามากกว่าเท่ากับ .5 ปัดขึ้น
ceil()
ceil(A)
ปัดเศษของ A ขึ้น
rand()
A = rand()
สุ่มตัวเลขทศนิยมระหว่าง 0-1 มาหนึ่งตัว
randperm(X,n)
B = randperm(100,6)
สุ่มตัวเลขจำนวนเต็มระหว่าง 1-100 มา 6 ตัว โดยแต่ละตัวค่าจะไม่ซ้ำกัน
randi([x,y],m,n)
C = randi([1,10],1,2)
สุ่มตัวเลขจำนวนเต็มระหว่าง 1-10 โดยคืนค่ามาในรูปแบบ 1 แถว 2 คอลัมภ์
ones(m,n)
D = ones(3,4)
สร้างแมททริกซ์เลข 1 ที่มีขนาด 3 แถว 4 คอลัมภ์
zeros(m,n)
E = zeros(2,4)
สร้างแมทริกซ์เลข 0 ที่มีขนาด 2 แถว 4 คอลัมภ์
length()
A = length(‘Hello’)
หาความยาวของคำว่า ‘Hello’ ซึ่งได้ผลลัพธ์เท่ากับ 5
size()
[r,c] = size(A);
ใช้หาขนาดของอาเรย์ 2 มิติ โดยคำสั่งนี้จะคืนค่าออกมา 2 ค่า คือ จำนวนแถว และจำนวนคอลัมภ์ โดยในตัวอย่างนี้ใช้ r เก็บค่าจำนวนแถว และใช้ c เก็บค่าจำนวนคอลัมภ์
sum()
S = sum(A)
หาผลรวมของอาเรย์ A
mean()
Av = mean(A)
หาค่าเฉลี่ยของอาเรย์ A
max()
[v,id] = max(A)
หาค่าที่มากที่สุดของ A โดย output จะมี 2 ค่าคือ ค่ามากที่สุด (v) และตำแหน่งของค่านั้น (id)
min()
[v,id] = min(A)
ใช้หาค่าที่น้อยที่สุดใน A โดย output จะมี 2 ค่าคือ ค่าที่น้อยที่สุด (v) และตำแหน่งของค่านั้น (id)





จบหัวข้อที่ 4

ความเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การแก้สมการ Differential ด้วย MATLAB

การหาค่าเฉลี่ยโดยไม่ต้องเก็บค่า

การเปรียบเทียบข้อมูล