MATLAB - ประเภทข้อมูล
MATLAB ไม่ต้องการการประกาศประเภทหรือคำสั่งมิติใด ๆ เมื่อใดก็ตามที่ MATLAB พบชื่อตัวแปรใหม่จะสร้างตัวแปรและจัดสรรพื้นที่หน่วยความจำที่เหมาะสม
หากมีตัวแปรอยู่แล้ว MATLAB จะแทนที่เนื้อหาเดิมด้วยเนื้อหาใหม่และจัดสรรพื้นที่จัดเก็บใหม่ตามความจำเป็น
ตัวอย่างเช่น,
Total = 42
ข้อความข้างต้นสร้างเมทริกซ์ 1 ต่อ 1 ชื่อ 'รวม' และเก็บค่า 42 ไว้ในนั้น
ประเภทข้อมูลที่มีอยู่ใน MATLAB
MATLAB มีข้อมูลพื้นฐาน 15 ประเภท ข้อมูลทุกชนิดจัดเก็บข้อมูลที่อยู่ในรูปแบบของเมทริกซ์หรืออาร์เรย์ ขนาดของเมทริกซ์หรืออาร์เรย์นี้มีค่าน้อยที่สุดคือ 0 คูณ 0 และสามารถขยายเป็นเมทริกซ์หรืออาร์เรย์ได้ทุกขนาด
ตารางต่อไปนี้แสดงประเภทข้อมูลที่ใช้บ่อยที่สุดใน MATLAB -
| ซีเนียร์ | ประเภทข้อมูลและคำอธิบาย |
|---|---|
| 1 | int8 จำนวนเต็มลงนาม 8 บิต |
| 2 | uint8 จำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อ |
| 3 | int16 จำนวนเต็มลงชื่อ 16 บิต |
| 4 | uint16 จำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อ |
| 5 | int32 จำนวนเต็มลงนาม 32 บิต |
| 6 | uint32 จำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ |
| 7 | int64 จำนวนเต็ม 64 บิตที่ลงชื่อ |
| 8 | uint64 จำนวนเต็ม 64 บิตที่ไม่ได้ลงชื่อ |
| 9 | single ข้อมูลตัวเลขความแม่นยำเดียว |
| 10 | double ข้อมูลตัวเลขที่มีความแม่นยำสองเท่า |
| 11 | logical ค่าตรรกะเป็น 1 หรือ 0 แทนค่าจริงและเท็จตามลำดับ |
| 12 | char ข้อมูลอักขระ (สตริงถูกจัดเก็บเป็นเวกเตอร์ของอักขระ) |
| 13 | cell array อาร์เรย์ของเซลล์ที่จัดทำดัชนีแต่ละเซลล์สามารถจัดเก็บอาร์เรย์ของมิติข้อมูลและชนิดข้อมูลที่แตกต่างกันได้ |
| 14 | structure โครงสร้างคล้าย C แต่ละโครงสร้างมีชื่อฟิลด์ที่สามารถจัดเก็บอาร์เรย์ของมิติข้อมูลและชนิดข้อมูลที่แตกต่างกัน |
| 15 | function handle ชี้ไปที่ฟังก์ชัน |
| 16 | user classes วัตถุที่สร้างจากคลาสที่ผู้ใช้กำหนดเอง |
| 17 | java classes วัตถุที่สร้างจากคลาส Java |
ตัวอย่าง
สร้างไฟล์สคริปต์ด้วยรหัสต่อไปนี้ -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
การแปลงประเภทข้อมูล
MATLAB มีฟังก์ชันต่างๆสำหรับการแปลงค่าจากประเภทข้อมูลหนึ่งไปยังอีกประเภทหนึ่ง ตารางต่อไปนี้แสดงฟังก์ชันการแปลงชนิดข้อมูล -
| ฟังก์ชัน | วัตถุประสงค์ |
|---|---|
| ถ่าน | แปลงเป็นอาร์เรย์อักขระ (สตริง) |
| int2str | แปลงข้อมูลจำนวนเต็มเป็นสตริง |
| mat2str | แปลงเมทริกซ์เป็นสตริง |
| num2str | แปลงตัวเลขเป็นสตริง |
| str2double | แปลงสตริงเป็นค่าความแม่นยำสองเท่า |
| str2num | แปลงสตริงเป็นตัวเลข |
| native2unicode | แปลงไบต์ตัวเลขเป็นอักขระ Unicode |
| unicode2native | แปลงอักขระ Unicode เป็นไบต์ตัวเลข |
| base2dec | แปลงสตริงเลขฐาน N เป็นเลขฐานสิบ |
| bin2dec | แปลงสตริงเลขฐานสองเป็นเลขฐานสิบ |
| dec2base | แปลงทศนิยมเป็นเลขฐาน N ในสตริง |
| dec2bin | แปลงทศนิยมเป็นเลขฐานสองในสตริง |
| dec2hex | แปลงทศนิยมเป็นเลขฐานสิบหกในสตริง |
| hex2dec | แปลงสตริงเลขฐานสิบหกเป็นเลขฐานสิบ |
| hex2num | แปลงสตริงตัวเลขฐานสิบหกเป็นตัวเลขที่มีความแม่นยำสองเท่า |
| num2hex | แปลงซิงเกิ้ลและคู่เป็นสตริงเลขฐานสิบหก IEEE |
| cell2mat | แปลงอาร์เรย์ของเซลล์เป็นอาร์เรย์ตัวเลข |
| เซลล์ 2 สร้าง | แปลงอาร์เรย์เซลล์เป็นอาร์เรย์โครงสร้าง |
| cellstr | สร้างอาร์เรย์เซลล์ของสตริงจากอาร์เรย์อักขระ |
| mat2cell | แปลงอาร์เรย์เป็นอาร์เรย์ของเซลล์ด้วยเซลล์ที่มีขนาดแตกต่างกัน |
| num2cell | แปลงอาร์เรย์เป็นอาร์เรย์ของเซลล์ด้วยเซลล์ที่มีขนาดสม่ำเสมอ |
| โครงสร้าง 2 เซลล์ | แปลงโครงสร้างเป็นอาร์เรย์ของเซลล์ |
การกำหนดประเภทข้อมูล
MATLAB มีฟังก์ชันต่างๆสำหรับการระบุชนิดข้อมูลของตัวแปร
ตารางต่อไปนี้มีฟังก์ชันสำหรับกำหนดชนิดข้อมูลของตัวแปร -
| ฟังก์ชัน | วัตถุประสงค์ |
|---|---|
| คือ | ตรวจจับสถานะ |
| คือ | พิจารณาว่าอินพุตเป็นอ็อบเจ็กต์ของคลาสที่ระบุหรือไม่ |
| iscell | กำหนดว่าอินพุตเป็นอาร์เรย์ของเซลล์หรือไม่ |
| iscellstr | กำหนดว่าอินพุตเป็นอาร์เรย์ของสตริงของเซลล์หรือไม่ |
| ischar | กำหนดว่ารายการเป็นอาร์เรย์อักขระหรือไม่ |
| isfield | กำหนดว่าอินพุตเป็นฟิลด์อาร์เรย์โครงสร้างหรือไม่ |
| ลอยอยู่ | ตรวจสอบว่าอินพุตเป็นอาร์เรย์ทศนิยมหรือไม่ |
| ishghandle | True for Handle Graphics ที่จับวัตถุ |
| isinteger | พิจารณาว่าอินพุตเป็นอาร์เรย์จำนวนเต็มหรือไม่ |
| isjava | ตรวจสอบว่าอินพุตเป็นวัตถุ Java หรือไม่ |
| ไร้เหตุผล | พิจารณาว่าอินพุตเป็นโลจิคัลอาร์เรย์หรือไม่ |
| เป็นตัวเลข | พิจารณาว่าอินพุตเป็นอาร์เรย์ตัวเลขหรือไม่ |
| isobject | ตรวจสอบว่าอินพุตเป็นวัตถุ MATLAB หรือไม่ |
| เป็นจริง | ตรวจสอบว่าอินพุตเป็นอาร์เรย์จริงหรือไม่ |
| isscalar | กำหนดว่าอินพุตเป็นสเกลาร์หรือไม่ |
| isstr | กำหนดว่าอินพุตเป็นอาร์เรย์อักขระหรือไม่ |
| สร้าง | กำหนดว่าอินพุตเป็นอาร์เรย์โครงสร้างหรือไม่ |
| isvector | กำหนดว่าอินพุตเป็นเวกเตอร์หรือไม่ |
| ชั้นเรียน | กำหนดคลาสของวัตถุ |
| ตรวจสอบคุณสมบัติ | ตรวจสอบความถูกต้องของอาร์เรย์ |
| ใคร | แสดงรายการตัวแปรในพื้นที่ทำงานพร้อมขนาดและประเภท |
ตัวอย่าง
สร้างไฟล์สคริปต์ด้วยรหัสต่อไปนี้ -
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
เมื่อคุณเรียกใช้ไฟล์ไฟล์จะสร้างผลลัพธ์ดังต่อไปนี้ -
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0