MATLAB - Loại dữ liệu
MATLAB không yêu cầu bất kỳ khai báo kiểu hoặc câu lệnh thứ nguyên nào. Bất cứ khi nào MATLAB gặp một tên biến mới, nó sẽ tạo biến đó và cấp phát không gian bộ nhớ thích hợp.
Nếu biến đã tồn tại, thì MATLAB sẽ thay thế nội dung gốc bằng nội dung mới và phân bổ không gian lưu trữ mới, nếu cần.
Ví dụ,
Total = 42
Câu lệnh trên tạo một ma trận 1 x 1 có tên là 'Tổng' và lưu giá trị 42 trong đó.
Các loại dữ liệu có sẵn trong MATLAB
MATLAB cung cấp 15 kiểu dữ liệu cơ bản. Mọi kiểu dữ liệu đều lưu trữ dữ liệu ở dạng ma trận hoặc mảng. Kích thước của ma trận hoặc mảng này tối thiểu là 0 x 0 và kích thước này có thể tăng lên thành ma trận hoặc mảng có kích thước bất kỳ.
Bảng sau đây cho thấy các kiểu dữ liệu được sử dụng phổ biến nhất trong MATLAB:
Sr.No. | Loại dữ liệu & Mô tả |
---|---|
1 | int8 Số nguyên có dấu 8 bit |
2 | uint8 Số nguyên không dấu 8 bit |
3 | int16 Số nguyên có dấu 16 bit |
4 | uint16 Số nguyên không dấu 16 bit |
5 | int32 Số nguyên có dấu 32 bit |
6 | uint32 Số nguyên không dấu 32 bit |
7 | int64 Số nguyên có dấu 64 bit |
số 8 | uint64 Số nguyên không dấu 64 bit |
9 | single dữ liệu số chính xác đơn |
10 | double dữ liệu số chính xác kép |
11 | logical giá trị lôgic của 1 hoặc 0, đại diện cho đúng và sai tương ứng |
12 | char dữ liệu ký tự (chuỗi được lưu trữ dưới dạng vectơ của ký tự) |
13 | cell array mảng các ô được lập chỉ mục, mỗi ô có khả năng lưu trữ một mảng có kích thước và kiểu dữ liệu khác nhau |
14 | structure Cấu trúc giống C, mỗi cấu trúc có các trường được đặt tên có khả năng lưu trữ một mảng có kích thước và kiểu dữ liệu khác nhau |
15 | function handle con trỏ đến một hàm |
16 | user classes các đối tượng được xây dựng từ một lớp do người dùng xác định |
17 | java classes các đối tượng được xây dựng từ một lớp Java |
Thí dụ
Tạo tệp kịch bản với mã sau:
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Chuyển đổi loại dữ liệu
MATLAB cung cấp các chức năng khác nhau để chuyển đổi, một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác. Bảng sau đây cho thấy các hàm chuyển đổi kiểu dữ liệu:
Chức năng | Mục đích |
---|---|
char | Chuyển đổi thành mảng ký tự (chuỗi) |
int2str | Chuyển đổi dữ liệu số nguyên thành chuỗi |
mat2str | Chuyển đổi ma trận thành chuỗi |
num2str | Chuyển đổi số thành chuỗi |
str2double | Chuyển đổi chuỗi thành giá trị chính xác kép |
str2num | Chuyển chuỗi thành số |
native2unicode | Chuyển đổi byte số thành ký tự Unicode |
unicode2native | Chuyển đổi các ký tự Unicode sang byte số |
base2dec | Chuyển chuỗi số cơ sở N thành số thập phân |
bin2dec | Chuyển đổi chuỗi số nhị phân thành số thập phân |
dec2base | Chuyển đổi số thập phân sang số cơ số N trong chuỗi |
dec2bin | Chuyển đổi số thập phân sang số nhị phân trong chuỗi |
dec2hex | Chuyển đổi số thập phân sang số thập lục phân trong chuỗi |
hex2dec | Chuyển đổi chuỗi số thập lục phân thành số thập phân |
hex2num | Chuyển đổi chuỗi số thập lục phân thành số chính xác kép |
num2hex | Chuyển đổi đơn và đôi sang chuỗi thập lục phân IEEE |
cell2mat | Chuyển đổi mảng ô thành mảng số |
cell2struct | Chuyển đổi mảng ô thành mảng cấu trúc |
cellstr | Tạo mảng ô của chuỗi từ mảng ký tự |
mat2cell | Chuyển đổi mảng thành mảng ô với các ô có kích thước khác nhau |
num2cell | Chuyển đổi mảng thành mảng ô với các ô có kích thước nhất quán |
struct2cell | Chuyển đổi cấu trúc thành mảng ô |
Xác định kiểu dữ liệu
MATLAB cung cấp các chức năng khác nhau để xác định kiểu dữ liệu của một biến.
Bảng sau cung cấp các hàm để xác định kiểu dữ liệu của một biến:
Chức năng | Mục đích |
---|---|
Là | Phát hiện trạng thái |
là một | Xác định xem đầu vào có phải là đối tượng của lớp được chỉ định hay không |
iscell | Xác định xem đầu vào có phải là mảng ô hay không |
iscellstr | Xác định xem đầu vào có phải là mảng ô của chuỗi không |
ischar | Xác định xem mục có phải là mảng ký tự không |
isfield | Xác định xem đầu vào có phải là trường mảng cấu trúc hay không |
isfloat | Xác định xem đầu vào có phải là mảng dấu phẩy động không |
ishghandle | True for Handle Graphics đối tượng xử lý |
isinteger | Xác định xem đầu vào là mảng số nguyên |
isjava | Xác định xem đầu vào là đối tượng Java |
thần học | Xác định xem đầu vào có phải là mảng logic không |
isnumeric | Xác định xem đầu vào là mảng số |
isobject | Xác định xem đầu vào là đối tượng MATLAB |
là thật | Kiểm tra xem đầu vào có phải là mảng thực không |
Isscalar | Xác định xem đầu vào có vô hướng không |
isstr | Xác định xem đầu vào là mảng ký tự |
cấu trúc | Xác định xem đầu vào là mảng cấu trúc |
isvector | Xác định xem đầu vào là vectơ |
lớp học | Xác định lớp đối tượng |
xác thực | Kiểm tra tính hợp lệ của mảng |
ai | Liệt kê các biến trong không gian làm việc, với kích thước và kiểu |
Thí dụ
Tạo tệp kịch bản với mã sau:
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)
Khi bạn chạy tệp, nó tạo ra kết quả sau:
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