การสร้างสเกล่าร์ เวอร์เตอร์และเมทริกซ์
ค่าสเกลาร์ (scalar) สามารถที่จะถูกกำหนดลงในตัวแปรได้ทันที เช่น ถ้าต้องการกำหนดให้ และ 
ก็ทำได้ดังนี้
-->a = 2 + 3*%i // กำหนดให้ 
a =
2. + 3.i
-->b = 5; // กำหนดให้ 
-->
โดยที่ %i คือค่าคงที่พิเศษ ที่ใช้ในการแสดงตัวเลขเชิงซ้อนโดยจะมีค่าเท่ากับค่าหน่วยจินตภาพ (imaginary unit)
นั่นคือ ส่วนเครื่องหมายเซมิโคลอน ; ที่ใช้ปิดท้ายคำสั่งที่สองเป็นการบอกให้โปรแกรม
ไม่ต้องแสดงผลลัพธ์ออกทางหน้าต่างคำสั่ง และ เครื่องหมาย double slash // หรือ เครื่องหมายคอมเมนต์
(comment) เป็นเครื่องหมายที่จะบอกให้โปรแกรม SCILAB
ไม่ทำการประมวลผลต่อคำสั่งหรือข้อความที่อยู่หลังเครื่องหมาย คอมเมนต์นี้
ในการใช้งานโปรแกรม SCILAB เครื่องหมายขึ้นบรรทัดใหม่ ... ซึ่งมีลักษณะเป็นจุดที่เรียงต่อกันสามจุด
จะมีประโยชน์มากในการเขียนโปรแกรมโดยเฉพาะอย่างยิ่งเมื่อคำสั่งที่ใช้มีความยาวมาก เครื่องหมายนี้
เอาไว้ใช้ต่อท้ายคำสั่ง เพื่อบอกว่าคำสั่งในบรรทัดนั้นยังไม่สิ้นสุด ดังนั้นถึงแม้ว่าจะกดปุ่ม Enter
หลังเครื่องหมายจุดสามจุดนี้ โปรแกรม SCILAB ก็จะยังไม่นำคำสั่งนั้นไปประมวลผล
แต่จะรอรับข้อมูลส่วนที่เหลือที่จะเขียนต่อไปในบรรทัดใหม่จนกระทั่งหมดคำสั่งแล้วกดปุ่ม Enter อีกครั้ง
จากนั้นโปรแกรม SCILAB จึงจะเอาข้อความทั้งหมดมารวมกันเป็นประโยคคำสั่งเดียวแล้วค่อยนำเอาไปประมวลผล
ตัวอย่างเช่น
-->x = 5;
-->y = 3;
-->z = x + y // หาผลบวกของตัวแปร x กับตัวแปร y
z = // แล้วนำผลลัพธ์ที่ได้ไปบรรจุไว้ในตัวแปรใหม่ที่ชื่อตัวแปร z
8.
-->z = x + ... // ยังไม่สิ้นสุดคำสั่ง โปรแกรม SCILAB จะยังไม่นำข้อมูลนี้ไปประมวลผล
-->y // เมื่อกดปุ่ม Enter ก็ถือว่าเป็นการสิ้นสุดคำสั่งที่ป้อนจากบรรทัดก่อนหน้านี้
z = // โปรแกรม SCILAB จะนำคำสั่งทั้งหมดคือ z = x + y ไปประมวลผล
8.
จะเห็นได้ว่าผลลัพธ์ที่ได้มีค่าเท่ากัน
โปรแกรม SCILAB ได้เตรียมค่าคงที่พิเศษอื่นๆ เพื่อรองรับการคำนวณทางคณิตศาสตร์ เช่น
%pi คือค่าอัตราส่วน ระหว่างความยาวเส้นรอบวงกับเส้นผ่านศูนย์กลางของวงกลม ซึ่ง มีค่าเท่ากับ = 3.1415927...
%e คือค่าคงที่ตรีโกณมิติ โดยมีค่าเท่ากับ e = 2.7182818...
%inf มาจากคำว่า infinity คือค่าอนันต์ นั่นคือ %inf = 
%nan มาจากคำว่า Not-A-Number คือค่าที่ไม่สามารถแสดงให้อยู่ในรูปของตัวเลขได้
%eps มาจากคำว่า epsilon คือค่าหน่วยย่อยขนาดเล็กที่สุดที่โปรแกรม SCILAB สามารถรองรับได้
โดยจะมีค่าเท่ากับ e 2.22*10 -16 ดังนั้นค่าจำนวนจริงที่มีค่าน้อยกว่าค่า %eps โปรแกรม SCILAB
จะถือว่าเป็นค่าศูนย์
ans คือตัวแปรชั่วคราวที่โปรแกรม SCILAB ใช้เก็บผลลัพธ์ที่ได้จากการคำนวณของคำสั่ง
แต่ละคำสั่งในหน้าต่างคำสั่ง
เวกเตอร์ (vector) คือเมทริกซ์ (matrix) ขนาดหนึ่งแถว หรือเมทริกซ์ขนาดหนึ่งแนวตั้ง เวกเตอร์แถว
(row vector) สามารถสร้างได้โดยการใช้เครื่องหมายคอมม่า (comma) , หรือช่องว่าง (space)
เป็นตัวแยกสมาชิกแต่ละสมาชิกในเวกเตอร์แถว ตัวอย่างเช่น
-->v = [1, 2, -3]
v =
1. 2. - 3.
-->v = [1 2 -3]
v =
1. 2. - 3.
ถ้าต้องการทราบว่าเวกเตอร์ v มีความยาวเท่าใดหรือมีจำนวนสมาชิกทั้งหมดเท่าใด ก็ทำได้
โดยการใช้คำสั่ง length ดังนี้
-->length(v)
ans =
3. // หมายความว่าเวกเตอร์ v มีสมาชิกสามตัว
ในขณะที่เวกเตอร์แนวตั้ง (column vector) สามารถสร้างได้โดยการทรานส์โพส (transpose)
เวกเตอร์แถวซึ่งจะใช้เครื่องหมาย single quote ' ตามหลังตัวแปรเวกเตอร์แถว
หรือสามารถสร้างเวกเตอร์แนวตั้งขึ้นมาได้โดยตรงโดยการใช้เครื่องหมายเซมิโคล่อนเป็นตัวแยก
สมาชิกแต่ละสมาชิกในเวกเตอร์แนวตั้ง เช่น
-->v = [1 2 3]; // สร้างเวกเตอร์แถว v
-->v' // ใช้ทรานส์โพสกับเวกเตอร์แถวเพื่อให้ได้เป็นเวกเตอร์แนวตั้ง
ans =
1.
2.
3.
-->w = [1; 2; -3] // สร้างเวกเตอร์แนวตั้งขึ้นมาโดยใช้เครื่องหมายเซมิโคล่อน
w =
1.
2.
- 3.
นอกจากการกำหนดค่าโดยตรงให้กับเวกเตอร์แล้ว
ผู้ใช้ยังสามารถกำหนดค่าของเวกเตอร์ให้มีค่าเพิ่มขึ้นหรือลดลงแบบอัตโนมัติได
้ โดยการใช้เครื่องหมายโคล่อน (colon) : ช่วยซึ่งมีรูปแบบการใช้งานดังนี้
ชื่อตัวแปร = ค่าเริ่มต้น : ค่าที่เพิ่มขึ้น (หรือค่าที่ลดลง) : ค่าสุดท้าย |
ในกรณีที่ไม่มีการกำหนดค่าที่เพิ่มขึ้น (หรือค่าที่ลดลง) โปรแกรม SCILAB จะกำหนดให้เป็น
ค่าที่เพิ่มขึ้นเท่ากับ +1 โดยอัตโนมัติ (ค่าโดยปริยาย) ตัวอย่างเช่น
-->z = 1:2:10 // เริ่มต้นที่ค่า 1 แล้วเพิ่มขึ้นทีละ +2 จนกระทั่งถึงค่าที่มากที่สุดที่ไม่เกิน 10
z =
1. 3. 5. 7. 9.
-->z = 10:-2.5:0 // เริ่มต้นที่ค่า 10 แล้วลดลงทีละ -2.5 จนกระทั่งถึงค่าที่น้อยที่สุดที่ไม่เกิน 0
z =
10. 7.5 5. 2.5 0.
-->z = 0:5 // เริ่มต้นที่ค่า 0 แล้วค่าเพิ่มขึ้นทีละ +1 จนกระทั่งถึง 5
z =
0. 1. 2. 3. 4. 5.
-->z = 5:0 // ค่าเริ่มต้นที่ 5 ไม่สามารถเพิ่มขึ้นทีละ +1 จนถึง 0 ได้ ดังนั้นผลลัพธ์ที่ได้จึงเป็น
z = // เมทริกซ์ว่าง (empty matrix) นั่นคือมีจำนวนแถวกับจำนวนแนวตั้งเท่ากับศูนย์
[]
เมทริกซ์ขนาด m x n คือเมทริกซ์ที่มีจำนวนจำนวน m แถว และ n แนวตั้ง เช่น ถ้าต้องการ
สร้างเมทริกซ์ขนาด 2 x 3 สามารถสร้างได้ เช่น
-->A = [1 2 3; 4 5 6]
A =
1. 2. 3.
4. 5. 6.
และหากต้องการทราบว่าเมทริกซ์ A มีขนาดเท่าใดก็สามารถทำได้โดยใช้คำสั่ง size ดังนี้
-->size(A)
ans =
2. 3. // บอกว่า เมท ริกซ์ A มีขนาด 2 x 3 (หรือ 2 แถว และ 3 แนวตั้ง)
นอกจากนี้ ผู้ใช้ สามารถที่จะอ้างถึงสมาชิกแต่ละตัวในเมทริกซ์ได้โดยตรงตามรูปแบบ
การใช้งานดังนี้
-->b = A(2, 3)
b =
6.
คำสั่งนี้เป็นการบอกโปรแกรม SCILAB ให้นำค่าของสมาชิกในแถวที่สองและแนวตั้ง
ที่ สามของเมทริกซ์ A ไปบรรจุไว้ในตัวแปร b ในทำนองเดียวกันผู้ใช้ยังสามารถที่จะกำหนด
ค่าให้แก่สมาชิก แต่ละตัวในเมทริกซ์ได้ โดยตรง เช่น
-->A(2, 3) = 10
A =
1. 2. 3.
4. 5. 10.
ซึ่งเป็นการกำหนดให้ค่าของสมาชิกในแถวที่สองและแนวตั้งที่สามของเมทริกซ์ A
มีค่าเป็นค่า 10 ดังนั้นเมทริกซ์ A จึงมีผลลัพธ์ตามที่แสดงไว้ข้างต้น
การหาทรานส์โพส ดีเทอร์มิแนนต์ อินเวอร์สการคูณ ของเมทริกซ์ ทรานส์โพสเมทริกซ์ (matrix transpose) เป็นการเปลี่ยนแนวตั้งให้เป็นแถว และเปลี่ยนแถว
ให้เป็นแนวตั้ง โปรแกรม SCILAB สามารถทำการทรานส์โพสเมทริกซ์ได้ 2 รูปแบบ คือ
ทรานส์โพสแบบสังยุค (conjugate transpose) จะใช้เครื่องหมาย ' เป็นตัวดำเนินการ
โดย ทำหน้าที่สร้างทรานส์โพสเมทริกซ์ พร้อมทั้งทำการสังยุคของตัวเลขเชิงซ้อนด้วย
ทรานส์โพสแบบธรรมดา (transpose) จะใช้เครื่องหมาย .' เป็นตัวดำเนินการ โดย
จะสร้างเฉพาะทรานส์โพสเมทริกซ์เท่านั้น
ตัวอย่างการใช้งานเช่น
-->A = [1 + 2*%i; 3; 2 - %i];
-->A' // ใช้ทรานส์โพสแบบสังยุค
ans =
1. - 2.i 3. 2. + i // ทำการสังยุคของตัวเลขเชิงซ้อนด้วย
-->A.' // ใช้ทรานส์โพสแบบธรรมดา
ans =
1. + 2.i 3. 2. - i
สำหรับค่า ดีเทอร์มิแนนต์ (determinant) และ การหา อินเวอร์สการคูณของเมทริกซ์ A
สามารถทำได้โดยการใช้คำสั่ง det(A) และ inv(A) ตามลำดับ เช่น
-->A = [1 2; 3 4]; // สร้างเมทริกซ์ A
-->det(A) // หาดีเทอร์มิแนนต์ ของเมทริกซ์ A
ans =
- 2.
-->inv(A) // หาอินเวอร์สการคูณของเมทริกซ์ A
ans =
- 2. 1.
1.5 - 0.5
|