Przechowywanie danych różnych typów w jednej zmiennej
Wykonanie poniższego skryptu pozwoliło na zapamiętanie informacji o sprzedaży biletów w jednej zmiennej (tablicy komórek) o nazwie lista. Pierwsze dwie kolumny tej zmiennej zawierają dane tekstowe (przy czym dane w kolumnie nr 1 mają w poszczególnych wierszach różną długość), natomiast dwie ostatnie kolumny zawierają dane liczbowe.
% ======================================= Początek skryptu =======================================
clear;clc;
lista = {};
flag = 'T';
i = 0;
while flag == 'T'
clc;
i = i+1;
lista(i,1) = input('Podaj imię i nazwisko: ','s');
lista(i,2) = input('Podaj klasę kupowanego biletu (A, B lub C): ','s');
lista(i,3) = input('Podaj liczbę biletów: ');
lista(i,4) = input('Podaj cenę pojedynczego biletu: ');
flag = input('Czy kontynuujesz sprzedaż? TAK - T, NIE - N: ','s');
end
lista
% ======================================== Koniec skryptu ========================================
Oto zawartość uzyskanej tablicy komórek (zmienna lista):
lista =
{
[1,1] = Jan Kowalski
[2,1] = Anna Górna
[3,1] = Kazimierz Dolny
[4,1] = Bolesław Śmiały
[5,1] = Grażyna Wysocka
[1,2] = A
[2,2] = B
[3,2] = C
[4,2] = A
[5,2] = A
[1,3] = 2
[2,3] = 6
[3,3] = 10
[4,3] = 1
[5,3] = 3
[1,4] = 100
[2,4] = 80
[3,4] = 50
[4,4] = 100
[5,4] = 100
}
Rozmiar zmiennej 'lista':
>> size(lista)
ans =
5 4
Prezentacja danych
Zdolność do przechowywania różnych typów danych w jednej zmiennej jest cenną właściwością komórek, ale ich możliwości prezentacyjne są raczej ograniczone. Spróbujmy zatem zaprezentować dane ze zmiennej lista (tablica komórek) w ramce danych. Najpierw załadujemy wymagany pakiet dataframe a później utworzymy ramkę danych na bazie naszej listy. Ponieważ w tablicy komórek nie ma nagłówka danych, do polecenia utworzenia dataframe’u dodamy dodatkowy argument, definiujący nagłówki kolumn tworzonej ramki danych. Ten dodatkowy argument podany jest w formacie komórki.
>> pkg load dataframe
>>
>> df = dataframe(lista,'colnames',{'PODROZNY','KLASA','LICZBA','CENA'})
df = dataframe with 5 rows and 4 columns
_1 PODROZNY KLASA LICZBA CENA
Nr char char double double
1 Jan Kowalski A 2 100
2 Anna Górna B 6 80
3 Kazimierz Dolny C 10 50
4 Bolesław Śmiały A 1 100
5 Grażyna Wysocka A 3 100
% Dodajmy teraz do ramki danych nową kolumnę, zdefiniowaną jako iloczyn liczby kupionych biletów i ich ceny
>> df.WARTOSC=df.LICZBA.*df.CENA
df = dataframe with 5 rows and 5 columns
_1 PODROZNY KLASA LICZBA CENA WARTOSC
Nr char char double double double
1 Jan Kowalski A 2 100 200
2 Anna Górna B 6 80 480
3 Kazimierz Dolny C 10 50 500
4 Bolesław Śmiały A 1 100 100
5 Grażyna Wysocka A 3 100 300