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