Typy danych MATLAB: wszystko, co musisz wiedzieć

Opublikowany: 2020-09-16

MATLAB zapewnia wiele sposobów przechowywania liczb i zmiennych. Wszystkie liczby są równoważne rzeczywistym liczbowym liczbom rzeczywistym. Istnieje górna granica największej liczby i dolna granica wartości bezwzględnej liczby niezerowej. Wynika to ze skończonej pamięci urządzeń przetwarzających w porównaniu z liczbą rzeczywistą, która może być nieskończona.

Ze względu na skończoną przestrzeń zmienna MATLAB nie może przechowywać liczby niewymiernej. Np. wartość pi jest zwracana do wartości aproksymacji. Zbiór wartości reprezentowanych w zmiennej MATLAB jest skończony. Typy danych w MATLAB pomogą poradzić sobie z tym ograniczeniem.

Wszystkie zmienne MATLAB należą do klasy, w której różne klasy mają różne cechy i są odpowiednie do reprezentowania różnych typów danych, niezależnie od tego, czy są to dane numeryczne, tekstowe czy złożone.

Pamiętaj: Wszystkie podane elementy w tablicy powinny być tego samego typu.

MATLAB udostępnia łącznie 16 podstawowych typów, a typy danych w MATLAB są zdefiniowane przez,

  • Zdefiniowany zestaw wartości
  • Zestaw operacji, którego można użyć do wykonania na tych wartościach

Źródło

Spis treści

Typy numeryczne

Typy liczbowe obejmują liczby całkowite ze znakiem i bez znaku, liczby zmiennoprzecinkowe o pojedynczej, podwójnej precyzji. Zmienne liczbowe i ich cechy wymieniono poniżej:

podwójnie Tablice o podwójnej precyzji
  • Domyślny numeryczny typ danych (klasa) w MATLAB
  • Przechowywana jako 64-bitowa (8-bajtowa) wartość zmiennoprzecinkowa
  • Zakres-

Liczby ujemne = -1,79769 x 10 308 i -2,22507 x 10 -308

Liczby dodatnie = 2,22507 x 10 -308 i 1,79769 x 10 308

pojedynczy Tablice o pojedynczej precyzji
  • Przechowywana jako 4-bajtowa (32-bitowa) wartość zmiennoprzecinkowa
  • Zakres-

Liczby ujemne = -1,79769 x 10 308 i -2,22507 x 10 -308

Liczby dodatnie = 2,22507 x 10 -308 i 1,79769 x 10 308

int8 8-bitowe tablice liczb całkowitych ze znakiem
  • Przechowywane jako 1-bajtowe (8-bitowe) liczby całkowite ze znakiem
  • Zakres to -2 7 do 2 7 -1
int16 16-bitowe tablice liczb całkowitych ze znakiem
  • Przechowywane jako 2-bajtowe (16-bitowe) liczby całkowite ze znakiem
  • Zakres -2 15 do 2 15 -1
int32 32-bitowe tablice liczb całkowitych ze znakiem
  • Przechowywane jako 4-bajtowe (32-bitowe) liczby całkowite ze znakiem
  • Zakres wynosi od -2 31 do 2 31 -1
int64 64-bitowe tablice liczb całkowitych ze znakiem
  • Przechowywane jako 8-bajtowe (64-bitowe) liczby całkowite ze znakiem
  • Zakres wynosi od -2 63 do 2 63 -1
uint8 8-bitowe tablice liczb całkowitych bez znaku
  • Przechowywane jako 1-bajtowe (8-bitowe) liczby całkowite bez znaku
  • Zakres wynosi od 0 do 2 8 -1
uint16 16-bitowe tablice liczb całkowitych bez znaku
  • Przechowywane jako 2-bajtowe (16-bitowe) liczby całkowite bez znaku
  • Zakres wynosi od 0 do 2 16 -1
uint32 32-bitowe tablice liczb całkowitych bez znaku
  • Przechowywane jako 4-bajtowe (32-bitowe) liczby całkowite bez znaku
  • Zakres wynosi od 0 do 2 32 -1
uint64 64-bitowe tablice liczb całkowitych bez znaku
  • Przechowywane jako 8-bajtowe (64-bitowe) liczby całkowite bez znaku
  • Zakres wynosi od 0 do 2 64 -1

Przeczytaj: Pętla While w MATLAB: Wszystko, co musisz wiedzieć

Typ logiczny

Wartość prawda i fałsz jest reprezentowana przez wartości logiczne 0 i 1. Dowolną wartość liczbową (niezłożoną) można przekształcić w reprezentację logiczną.

Składnia : L = logiczne (x)

Powyższa instrukcja konwertuje x na dowolną tablicę wartości logicznych. Niezerowy element x jest konwertowany na wartość logiczną 1 (prawda), a wartość zero jest konwertowana na wartość logiczną 0 (fałsz).

Typ znaku i ciągu

Tablica znaków i ciągów MATLAB zapewnia przechowywanie danych tekstowych. Sekwencja znaków to tablica znaków porównywana z sekwencją liczb zwaną tablicą numeryczną.

Składnia : c = 'wyższy stopień'

„up grad” to sekwencja znaków tworząca tablicę ciągów. Możemy to zaobserwować również jako owinięty fragment tekstu.

Tablica komórek

Tablica komórek to typ danych MATLAB, który zawiera indeksowane pojemniki danych zwane komórkami . Komórki mogą zawierać dowolny typ danych, zwykle zawierają wektory znaków o różnej długości, liczby, tablicę liczb o dowolnej wielkości. Zestawy komórek są ujęte w (), a dostęp do komórek odbywa się za pomocą {}, który służy do tworzenia, edytowania lub usuwania dowolnych funkcji komórek.

Składnia : c = {s,m,i,l,e}

Stoły

Dane tabelaryczne lub zorientowane na kolumny wymagają tabel i są one przechowywane jako kolumny w pliku tekstowym lub arkuszu kalkulacyjnym. Zawiera zmienne wierszowe i kolumnowe. Każda zmienna może mieć różne typy danych i różne rozmiary, ale każda zmienna musi mieć taką samą liczbę wierszy.

Szereg funkcji służy do dostępu do danych w celu tworzenia, edycji i odczytu danych w tabeli.

Struktury

Nazwane pola zawierają dane o różnych typach i rozmiarach. W tym przypadku kontenery danych służą do grupowania powiązanych danych i ich typów, które nazywane są polami . Pola mogą zawierać dowolny typ danych.

Dostęp do danych w strukturach podaje się za pomocą notacji kropkowej.

Format: nazwastruktury.nazwa pola.

Przykład:

Struktura skalarna służy do przechowywania danych pacjentów należących do tej samej grupy.

pacjent(1).nazwa = 'Jan Kowalski';

pacjent(1).rozliczenie = 127,00;

pacjent(1).test = [79, 75, 73; 180, 178, 177,5; 220, 210, 205];

Uchwyty funkcyjne

Użycie uchwytu funkcji polega głównie na przekazaniu funkcji (numerycznej lub znakowej) do innej funkcji. Zmienne używane do wywoływania funkcji pośrednio można nazwać jako uchwyt funkcji .

Do utworzenia uchwytu funkcji używany jest operator „@”.

Przykład: Aby utworzyć uchwyt funkcji do oceny a2 -b2 , użyta funkcja to:

F = @(a,b) (a.^2 – b.^2);

Identyfikacja typu danych

MATLAB posiada zestaw zmiennych, które służą do identyfikacji typu danych

iskalenduracja Aby sprawdzić, czy dane wejściowe to tablica czasu trwania kalendarza
iscellstr Aby sprawdzić, czy dane wejściowe są tablicą komórek składa się z wektorów znaków
iscell Aby sprawdzić, czy dane wejściowe to tablica komórek
isjawa Aby sprawdzić, czy dane wejściowe to obiekt Java
Ischara Aby sprawdzić, czy dane wejściowe to tablica znaków
iskategoryczny Aby sprawdzić, czy dane wejściowe są tablicą kategoryczną
czas trwania Aby sprawdzić, czy dane wejściowe to tablica czasu trwania
Isenum Aby sprawdzić, czy zmienna jest wyliczeniem
unosi się na wodzie Aby sprawdzić, czy dane wejściowe są tablicą zmiennoprzecinkową
isdatetime Aby sprawdzić, czy dane wejściowe to tablica daty i godziny
isinteger Aby sprawdzić, czy dane wejściowe są tablicą liczb całkowitych
stabilny Aby sprawdzić, czy dane wejściowe są w formie tabeli
isgrafika Prawda dla prawidłowych uchwytów obiektów graficznych
isnumeryczny Aby sprawdzić, czy dane wejściowe są tablicą numeryczną
izoobiekt Aby sprawdzić, czy dane wejściowe to obiekt MATLAB
jest realne Aby sprawdzić, czy tablica jest prawdziwa
isstring Aby sprawdzić, czy dane wejściowe to tablica ciągów
isstruct Aby sprawdzić, czy dane wejściowe to tablica struktury
walidacjaatrybutów Sprawdź poprawność tablicy
jest rozkład jazdy Aby sprawdzić, czy dane wejściowe to harmonogram
jest Aby sprawdzić, czy dane wejściowe mają określony typ danych
islogiczny Aby sprawdzić, czy dane wejściowe to tablica logiczna
jest* Wykryj stan
klasa Klasa obiektu

Konwersja typu danych

Poniższe funkcje służą do zmiany między różnymi typami danych MATLAB, tablicą numeryczną, tablicą znaków, tablicą komórek, strukturami lub tabelami.

char – tablica znaków

cellstr – Aby zmienić na tablicę komórkową wektorów znaków

int2str – Aby zmienić liczby całkowite na znaki

mat2str – Aby zmienić macierz na znaki

num2str – Aby zmienić liczby na tablicę znaków

str2double – Aby zmienić ciągi na wartości o podwójnej precyzji

str2num – Aby zmienić tablicę znaków lub ciąg znaków na tablicę liczbową

native2unicode – Aby zmienić bajty numeryczne na reprezentację znaków Unicode

unicode2native - Aby zmienić reprezentację znaków Unicode na bajty numeryczne

base2dec - Aby zmienić tekst reprezentujący liczbę o podstawie N na liczbę dziesiętną

hex2dec – Aby zmienić tekstową reprezentację liczby szesnastkowej na liczbę dziesiętną

hex2num – Aby zmienić format szesnastkowy IEEE na liczbę o podwójnej precyzji

num2hex – Aby zmienić liczby o pojedynczej i podwójnej precyzji na format szesnastkowy IEEE

table2array – Aby zmienić tabelę na jednorodną tablicę

table2cell – Aby zmienić tablicę na tablicę komórek

table2struct – Aby zmienić tabelę na strukturę array

array2table – Aby zmienić jednorodną tablicę na tabelę

cell2table – Aby zmienić tablicę komórek na tabelę

struct2table – Aby zmienić tablicę struktury na tabelę

cell2mat – Aby zmienić tablicę komórek na zwykłą tablicę bazowego typu danych

cell2struct – Aby zmienić tablicę komórek na tablicę struktury

mat2cell – Aby zmienić tablicę na tablicę komórek, której komórki zawierają podtablice

num2cell – Aby zmienić tablicę na tablicę komórek z komórkami o stałej wielkości

struct2cell – Aby zmienić strukturę na tablicę komórek

Przeczytaj także: Rekurencja w strukturze danych: jak to działa, typy i kiedy są używane

Wniosek

Z powyższego artykułu otrzymaliśmy przegląd różnych typów danych MATLAB. Każdy z tych typów danych jest bardzo istotny dla użytkowników MATLAB, aby zrozumieć i efektywnie korzystać z programowania MATLAB. MATLAB jest bardzo popularny w dziedzinie nauki i inżynierii ze względu na precyzyjne obliczenia, składnię i wsparcie dużej społeczności.

Jeśli chcesz dowiedzieć się więcej na temat MATLAB, uczenia maszynowego i związanych z nim tematów, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studia przypadków i zadania, status absolwentów IIIT-B, ponad 5 praktycznych praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Jakie są różne typy danych używane w MATLAB?

Dane w MATLAB mogą być numeryczne lub znakowe. Dane liczbowe reprezentują wartości odpowiadające znanym liczbom i operacjom arytmetycznym, takim jak dodawanie i mnożenie. Dane znakowe to ciągi tekstu, takie jak słowa, litery lub symbole (takie jak „$”). Dostęp do elementów tablic znaków można uzyskać przy użyciu tej samej składni, co w przypadku danych liczbowych (np. C('To jest tablica znaków') zwraca element tablicy C, który zawiera łańcuch, To jest tablica znaków).

Czym są struktury w MATLAB?

MATLAB obejmuje trzy klasy struktur: tablice komórek, struktury i tablice uchwytów. Tablica komórek to pojedyncza struktura danych zawierająca elementy różnych typów. Tablica komórek jest w rzeczywistości grupą struktur, z których każda zawiera jeden element tablicy. Jeśli używasz funkcji cell() do utworzenia tablicy komórek, MATLAB domyślnie wypełnia tablicę zerami. Struktura to zbiór zmiennych, które mają tę samą nazwę, ale mogą mieć różne typy. MATLAB obsługuje struktury jako tablice komórek. W tablicy komórek można przechowywać tylko jedną strukturę. Tablica uchwytów jest pojemnikiem na odwołania do innych tablic MATLAB lub do obiektów, takich jak wykresy i rysunki. W tablicy komórek można przechowywać wiele tablic uchwytów.

Jak zidentyfikować typ danych w programie Matlab?

Można to zrobić za pomocą polecenia isa w programie Matlab. Składnia polecenia isa jest następująca: isa(moje_dane). Na przykład: Jeśli chcesz poznać typ danych my_data, możesz użyć polecenia isa jako: isa(my_data) Zwróci to następujący tekst: int64, int32, int16, uint8, uint32, uint64, complex64, complex128, char . To polecenie ma być używane tylko w programie Matlab.