Pakiety Matematyczne
Transkrypt
Pakiety Matematyczne
Pakiety matematyczne Matematyka Stosowana dr inż. Krzysztof Burnecki 15.05.2013 Wykład 11 GUI. Przydatne funkcje Inne typy danych: typ komórkowy (cell) i typ strukturalny (struct) Narzędzia cftool i sftool Slajdy powstały na podstawie prezentacji „Informatyka” otrzymanej od dr hab. Małgorzaty Kotulskiej Przydatne informacje do tworzenia GUI Stworzenie menu i paska narzędzi Grupowanie przycisków: komponent Panel Właściwości wywołań wstecznych Własność Opis własności ButtonDownFcn Jest wykonywana wtedy, gdy użytkownik naciśnie przycisk myszki, a jej kursor wskazuje dany komponent CreateFcn Inicjalizuje komponent podczas jego tworzenia (ale przed jego pojawieniem się na ekranie) DeleteFcn Czyszczenie operacji bezpośrednio przed usunięciem komponentu Callback Wykonuje podstawowe zadania, w odpowiedzi na akcję użytkownika Właściwości wywołań wstecznych Własność Opis własności KeyPressFcn Jest wykonywana wtedy, gdy użytkownik naciśnie klawisz na klawiaturze, a wywołanie wsteczne komponentu jest aktywne ResizeFcn Jest wykonywana wtedy. Gdy użytkownik zmienia rozmiar Panela lub Grupy opcji SelectionChangeFcn Jest wykonywana wtedy, gdy użytkownik wybierze inny przycisk opcji lub przycisk przełącznika Inne typy danych. Typ komórkowy Elementy tablic komórkowych mogą zawierać inne tablice o dowolnych rozmiarach i typach. Odwołań do komórki dokonuje się za pomocą indeksów umieszczonych w nawiasach klamrowych {}. Typ komórkowy (cell) Składowymi zmiennej typu CELL są macierze, łańcuchy, inne obiekty typu cell, zmienne obiektowe języka Java. Deklaracja: np. cell(1,2) Typ komórkowy. Przykład Typ komórkowy. Przykład, cd. >> A(1,1) = {magic(5)} A= [5x5 double] >> A(1,2) = {{[5 2 8; 7 3 0; 6 7 3] 'Test 1'; [2-4i 5+7i] {17 []}}} A= [5x5 double] {2x2 cell} Dostęp do elementów w komórce Stosujemy nawiasy klamrowe >> A{1,2} ans = [3x3 double] 'Test 1' [1x2 double] {1x2 cell} >> A{1,2}{1,1} ans = 5 2 8 7 3 0 6 7 3 Pełne wyświetlenie zawartości komórki, celldisp >> celldisp(A) A{1} = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 A{2}{1,1} = 5 2 8 7 3 0 6 7 3 A{2}{2,1} = 2.0000 - 4.0000i 5.0000 + 7.0000i A{2}{1,2} = Test 1 A{2}{2,2}{1} = 17 A{2}{2,2}{2} = [] Graficzne wyświetlenie komórki, cellplot >> cellplot(A) Test 1 17 Inne typy danych. Typ struktualny (struct) Za pomocą danych struct można tworzyć lub dokonywać konwersji na tablicę strukturalną. Tablice strukturalne odwołują się do nazw pól, które mogą zawierać inne tablice, o dowolnych wymiarach i elementach. Typ strukturalny (struct) s = struct(‘POLE_1', wartosc_pola1, ‘POLE_2', wartosc_2, ...) s = struct(‘pole1', {wartosc1, wartosc2}, ‘pole2', {}, ...) struct([]), struct(Java_obj) Przykłady struktur >> s = struct('type', {'big','little'}, 'color', {'red'}, 'x', {3 4}) s= 1x2 struct array with fields: type color x Przykłady struktur, cd. >> s.x ans = 3 ans = 4 Przykłady struktur, cd. >> s = struct('type', {'big'}, 'color', {'red'}, 'x', {3}) s= type: 'big' color: 'red' x: 3 Przykłady struktur, cd. >> s.type='small' s= type: 'small' color: 'red' x: 3 Przykłady struktur. Inny sposób tworzenia >> s.type = 'big' >> s. color = 'red' >> s.x = 3 Przekształcanie komórek w struktury, cell2struct >> dane = {'Ania','Kowalska',165; 'Ewa','Kwiatkowska',170} każdy element to komórka dane = 'Ania' 'Kowalska' 'Ewa' [165] 'Kwiatkowska' [170] >> pola = {'imie', 'nazwisko', 'wzrost'} pola = 'imie' 'nazwisko' 'wzrost' Przekształcanie komórek w struktury, cell2struct >> s = cell2struct(dane, pola, 2) s= 2x1 struct array with fields: imie nazwisko wzrost Przekształcanie komórek w struktury, cell2struct >> s(1) ans = imie: 'Ania' nazwisko: 'Kowalska' wzrost: 165 >> s(2).nazwisko ans = Kwiatkowska