Zadanie 11. Utwórz poleceniem M = magic(3) kwadrat magiczny, sprawdź wynik poleceń fliplr(M), flipud(M), triu(M), tril(M), tril(triu(M)), diag(M), diag(diag(M)), rot90(M). Sprawdź czy jest analogiczna funkcja do rot90, ale z „obrotem w drugą stronę"?
Zadanie 12. Przy pomocy funkcji gallery utwórz macierz trójdiagonalną o 100 wierszach i 100 kolumnach.
Jeszcze jedną możliwością jest składanie macierzy z podmacierzy, co wyjaśnia kolejna ilustracja. Gdy w wyniku operacji powiększa się rozmiar macierzy, to dane z już utworzonej wcześniej części mogą być przepisywane w pamięci komputera. Dlatego sklejanie dużych macierzy z bardzo małych pojedynczych elementów jest nieefektywne. Do dobrego stylu programowania należy, jeżeli już musimy np. użyć pętli for, wstępne ustalenie wielkości macierzy wywołaniem funkcji zeros lub ones -niepotrzebne inicjalizacja bloku pamięci zerami jest znacznie mniej kosztowna niż wielokrotna realokacja i kopiowanie.
1 0 0
> c = [ Z. A ; B, Z ]
0
0
0
f*. » I
0
0
1
0
Ilustracja 8. Komponowanie macierzy z podmacierzy.
Zadanie 13. Utwórz, łącząc ze sobą mniejsze macierze, macierz:
1 |
0 |
0 |
1 |
0' |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
,0 |
0 |
0 |
0 |
1, |
Oczywiście zawsze możemy uzyskać macierz w wyniku obliczeń. Możliwe jest także używanie wyrażenia logicznego do utworzenia zakresu indeksów tablicy. W przykładzie powyżej w macierzy, będącej iloczynem Kroneckera, zastępujemy zerami wszystkie elementy większe niż 9.
Zadanie 14. Czy istnieje specjalna funkcja Matlaba do tworzenia iloczynu Kroneckera macierzy?
dr Sławomir Marczyński
Matlab - ćwiczenia
6/38