MATLAB - typy danych
MATLAB nie wymaga żadnej deklaracji typu ani instrukcji wymiarów. Ilekroć MATLAB napotka nową nazwę zmiennej, tworzy zmienną i przydziela odpowiednią przestrzeń pamięci.
Jeśli zmienna już istnieje, MATLAB zastępuje oryginalną zawartość nową treścią i przydziela nową przestrzeń do przechowywania, jeśli to konieczne.
Na przykład,
Total = 42
Powyższa instrukcja tworzy macierz 1 na 1 o nazwie „Suma” i przechowuje w niej wartość 42.
Typy danych dostępne w MATLAB
MATLAB zapewnia 15 podstawowych typów danych. Każdy typ danych przechowuje dane w postaci macierzy lub tablicy. Rozmiar tej macierzy lub tablicy to co najmniej 0 na 0 i może wzrosnąć do macierzy lub tablicy o dowolnym rozmiarze.
Poniższa tabela przedstawia najczęściej używane typy danych w MATLAB -
Sr.No. | Typ i opis danych |
---|---|
1 | int8 8-bitowa liczba całkowita ze znakiem |
2 | uint8 8-bitowa liczba całkowita bez znaku |
3 | int16 16-bitowa liczba całkowita ze znakiem |
4 | uint16 16-bitowa liczba całkowita bez znaku |
5 | int32 32-bitowa liczba całkowita ze znakiem |
6 | uint32 32-bitowa liczba całkowita bez znaku |
7 | int64 64-bitowa liczba całkowita ze znakiem |
8 | uint64 64-bitowa liczba całkowita bez znaku |
9 | single dane liczbowe o pojedynczej precyzji |
10 | double dane liczbowe podwójnej precyzji |
11 | logical wartości logiczne 1 lub 0 reprezentują odpowiednio prawdę i fałsz |
12 | char dane znakowe (łańcuchy są przechowywane jako wektor znaków) |
13 | cell array tablica indeksowanych komórek, z których każda może przechowywać tablicę o innym wymiarze i typie danych |
14 | structure Struktury podobne do C, każda struktura ma nazwane pola, które mogą przechowywać tablicę o innym wymiarze i typie danych |
15 | function handle wskaźnik do funkcji |
16 | user classes obiekty zbudowane z klasy zdefiniowanej przez użytkownika |
17 | java classes obiekty zbudowane z klasy Java |
Przykład
Utwórz plik skryptu z następującym kodem -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Konwersja typu danych
MATLAB zapewnia różne funkcje do konwersji wartości z jednego typu danych na inny. W poniższej tabeli przedstawiono funkcje konwersji typu danych -
Funkcjonować | Cel, powód |
---|---|
zwęglać | Konwertuj na tablicę znaków (ciąg) |
int2str | Konwertuj dane całkowite na ciąg |
mat2str | Konwertuj macierz na ciąg |
num2str | Konwertuj liczbę na ciąg |
str2double | Konwertuj ciąg na wartość o podwójnej precyzji |
str2num | Konwertuj ciąg na liczbę |
native2unicode | Konwertuj bajty numeryczne na znaki Unicode |
unicode2native | Konwertuj znaki Unicode na bajty numeryczne |
base2dec | Konwertuj podstawowy ciąg liczbowy N na liczbę dziesiętną |
bin2dec | Konwertuj ciąg liczb binarnych na liczbę dziesiętną |
dec2base | Konwertuj liczbę dziesiętną na podstawową liczbę N w ciągu |
dec2bin | Zamień liczbę dziesiętną na dwójkową w ciągu |
dec2hex | Konwertuj liczbę dziesiętną na szesnastkową w ciągu |
hex2dec | Konwertuj szesnastkowy ciąg liczbowy na liczbę dziesiętną |
hex2num | Konwertuj szesnastkowy ciąg liczbowy na liczbę podwójnej precyzji |
num2hex | Konwertuj pojedyncze i podwójne na ciągi szesnastkowe IEEE |
cell2mat | Konwertuj tablicę komórek na tablicę numeryczną |
cell2struct | Konwertuj tablicę komórek na tablicę struktur |
cellstr | Utwórz tablicę komórek zawierającą ciągi znaków z tablicy znaków |
mat2cell | Konwertuj tablicę na tablicę komórek z potencjalnie różnymi rozmiarami komórek |
num2cell | Konwertuj tablicę na tablicę komórek z komórkami o stałej wielkości |
struct2cell | Konwertuj strukturę na tablicę komórek |
Określenie typów danych
MATLAB zapewnia różne funkcje do identyfikowania typu danych zmiennej.
Poniższa tabela zawiera funkcje służące do określania typu danych zmiennej -
Funkcjonować | Cel, powód |
---|---|
jest | Wykryj stan |
jest | Sprawdź, czy wejście jest obiektem określonej klasy |
iscell | Określ, czy dane wejściowe to tablica komórek |
iscellstr | Określ, czy dane wejściowe to tablica komórek zawierająca ciągi |
ischar | Określ, czy element jest tablicą znaków |
isfield | Określ, czy wejście jest polem tablicy strukturalnej |
jest na powierzchni | Określ, czy dane wejściowe są tablicą zmiennoprzecinkową |
ishghandle | Prawda dla uchwytów obiektów Handle Graphics |
isinteger | Sprawdź, czy wejście jest tablicą liczb całkowitych |
isjava | Sprawdź, czy dane wejściowe to obiekt Java |
islogical | Sprawdź, czy wejście jest tablicą logiczną |
isnumeric | Sprawdź, czy dane wejściowe to tablica numeryczna |
isobject | Sprawdź, czy dane wejściowe to obiekt MATLAB |
jest realne | Sprawdź, czy wejście jest prawdziwą tablicą |
isscalar | Określ, czy dane wejściowe są skalarne |
isstr | Określ, czy dane wejściowe to tablica znaków |
isstruct | Określ, czy dane wejściowe to tablica strukturalna |
isvector | Określ, czy dane wejściowe są wektorowe |
klasa | Określ klasę obiektu |
validateattributes | Sprawdź poprawność tablicy |
kto | Lista zmiennych w obszarze roboczym, wraz z rozmiarami i typami |
Przykład
Utwórz plik skryptu z następującym kodem -
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)
Po uruchomieniu pliku daje on następujący wynik -
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