28 3 MACIERZE, ŁAŃCUCHY I OPERATORY
duże macierze w pliku (za pomocą lokalnego edytora). Można wtedy łatwo poprawić błędy powstałe przy wpisywaniu wartości elementów. Zapisaną w ten sposób macierz można wprowadzić do przestrzeni roboczej poleceniem load.
• Konstruowanie macierzy za pomocą funkcji. W tabeli 3.1 podano wybrane funkcje używane do definiowania macierzy elementarnych i macierzy specjalnych (pełną listę i opis funkcji stosowanych do definiowania macierzy podaje dokumentacja MATLAB-a).
Tab. 3.1 Funkcje do konstruowania macierzy
nazwa |
opis funkcji |
eye |
macierz jednostkowa; jedynki na przekątnej |
linspace |
wektor o wartościach rozłożonych równomiernie |
logspace |
wektor o wartościach rozłożonych logarytmicznie |
meshgrid |
macierz dla wykresów trójwymiarowych (siatkowych) |
ones |
macierz o elementach równych 1 |
rand |
macierz losowa o rozkładzie(rozłożeniu) równomiernym |
randn |
macierz losowa o rozkładzie(rozłożeniu) normalnym |
zeros |
macierz z elementami zerowymi |
hilb |
macierz Hilberfa |
invhilb |
odwrotna macierz Hilberfa |
magie |
kwadrat magiczny |
Dwukropek (:) jest jednym z częściej używanych operatorów w MAT-LAB-ic. Jest on wykorzystywany przy tworzeniu wektorów o równomiernie rozłożonych elementach. Umożliwia łatwe wyselekcjonowanie żądany cli wierszy, kolumn lub elementów macierzy. Jest stosowany w algorytmach iteracyjnych, a w szczególności w instrukcji for.
3.2.1 Generowanie wektorów
Generowanie wektorów, z zastosowaniem notacji dwukropkowej, przebiega według następujących zasad:
• j:k taki zapis definiuje wektor [j , j + 1, . . ., k]. Przy czym: j jest wartością 1-szego elementu wektora, k jest wartością ostatniego elementu. Jeżeli j>k to wektor jest pusty.
• j:i:k taki zapis określa wektor [j , j + i , j+2i, . . . ,k] . Przy czym: i jest różnicą pomiędzy kolejnymi elementami wektora, natomiast j,k są odpowiednio pierwszym i ostatnim elementem wektora. Wektor pusty uzyskuje sic w przypadku, gdy i>0 i j>k lub gdy i<0 i j<k.
3.2.2 Wybór żądanych wierszy, kolumn i elementów macierzy
Wyboru żądanych wierszy, kolumn i elementów macierzy dokonuje się za pomocą podanych poniżej zapisów:
• A(: , j) wypisanie j-tej kolumny macierzy A,
• A (: , j : k) wypisywanie kolumn A(j), A(j+1), ..., A(k); j jest numerem pierwszej, a k numerem ostatniej wypisywanej kolumny macierzy A. Jeśli j>k to uzyskuje się macierz pustą.
• A (i, :) wypisanie i-tego wiersza macierzy A,
• A(:) wypisanie wszystkich elementów macierzy w jednej kolumnie. Powstaje wektor zawierający elementy macierzy wypisywane kolumnami, od pierwszej do ostatniej. W ten sposób każdemu elementowi macierzy A zostaje przyporządkowany kolejny numer (indeks).
• A(j :k) wypisanie, w jednym wierszu, elementów macierzy A począwszy od elementu o indeksie j aż do indeksu k. Gdy j>k to powstaje wektor pusty.
Można również wskazać wybrane kolumny lub wiersze poprzez podanie ich numerów w nawiasach kwadratowych. Tak więc zapis A(:,[2,3]) jest równoważny zapisowi A(:,2:3).
3.2.3 Przykłady użycia notacji dwukropkowej
Zamieszczono fragmenty sesji z pakietem MATLAB, prezentujące przykłady stosowania notacji dwukropkowej. Pokazano generowanie wektora o elementach wzrastających o 1. Taki sposób tworzenia wektorów jest stosowany przede wszystkim w instrukcjach iteracyjnych.