• V= cat ( A1, A2, ... ) buyruq ishlatiladi. Bu holda A1, A2, ..., matritsalar ko’rsatilgan o’lchov bo’yicha birlashtiriladi: cat (2, A, V) = [A, V]
  •  Matritsalar ustida amallar




    Download 1,09 Mb.
    Pdf ko'rish
    bet15/29
    Sana10.01.2024
    Hajmi1,09 Mb.
    #134239
    1   ...   11   12   13   14   15   16   17   18   ...   29
    3.2. Matritsalar ustida amallar
    Matritsalarni almashtirish amallari. MATLABda matritsalar ustida oddiy
    arifmyetik amallardan tashqari maxsus amallar va almashtirishlar mavjud. Ulardan
    biri matritsalarni transnponirlashdir. Biror A matritsani transponirlash dyeganda uni
    mos qatorlarini ustunlar bilan almashtirish tushuniladi va u
    A' kabi
    byelgilanadi.
    Misol, A= [1 2 3
    4 5 6] berilgan. Buni MATLABda A= [1 2 3; 4 5 6] ko’rinishda
    kiritamiz. Dyemak bu (m*n) o’lchovli matritsaga o’tadi.
    Bir nyechta matritsalarni birlashtirish uchun
    V= cat ( A1, A2, ... )
    buyruq ishlatiladi. Bu holda A1, A2, ..., matritsalar ko’rsatilgan o’lchov bo’yicha
    birlashtiriladi:
    cat (2, A, V) = [A, V]
    cat (1, A, V) = [A; V]
    MATLABda matritsalarni burish uchun
    fliplr (A), flipud (A)
    buyruqlaridan foydalaniladi. fliplr (A) buyrug’i A matritsani chapdan o’ngga
    ustunlarini almashtirish yo’nalishida buradi. flipud (A) esa A matritsani pastdan
    yuqoriga qatorlarini almashtirish yo’nalishida buradi.
    Misol. A quyidagicha bo’lsin:
    A= [ 2 3
    7 1
    9 0]
    U holda fliplr (A) = [9 0; 7 1; 2 3] , ya’ni
    (A) = [9 0;
    7 1;
    2 3]
    flipud (A) q [3 2 ; 1 7; 0 9] kabi bo’ladi. Byerilgan matritsani soat stryelkasiga
    qarshi 90
    0
    ga buruvchi rot 90 (A) buyrug’idir.
    Misol: B = [1 3 5
    7 9 11
    2 3 4];
    rot 90(B)=[5 1 4 ; 3 9 3 ; 1 7 2]; ya`ni
    B=[5 1 4
    3 9 3
    1 7 2] hosil bo`ladi.


    77
    Undan tashqari MATLABda maxsus ko’rinishdagi matritsalarni hosil qilish
    imkoniyati bor. Ana shunday matritsalarni hosil qiluvchi buyruqlarni keltirib o’tamiz:
    - size (A) - A matritsaning o’lchovi;
    - length (A) -A vektor uzunligi (elyemyentlar soni);
    - ndims (A) - A matritsa o’lchovlari soni;
    - isempty (A) - A matritsa bo’sh bo’lsa 1, aks holda 0 qiymatni byeradi;
    - isegual (A, V) - A=V bo’lsa 1 ni byeradi, aks xolda “0” ni byeradi;
    - inumeric (A) - A matritsa sonli tipda bo’lsa 1 ni byeradi, aks holda “0” ni
    beradi;
    Misol. Berilgan matritsani soat strelkasiga qarshi 90
    0
    ga burish uchun
    ishlatiladigan rot90(A) buyrug’i:
    >> A=[-1 0 1; 0 -1 0; 1 -1 1]
    A =
    -1 0 1
    0
    -1 0
    1
    -1 1
    >> rot90(A)
    ans =
    1 0 1
    0
    -1
    -1
    -1 0 1
    Endi shu amalning bajarilish tartibi ya’ni algoritmini keltiramiz:
    >> for i=1:3; for j=1:3; C(i,j)=A(j,3-i+1); end; end; C
    C =
    1 0 1
    0
    -1
    -1
    -1 0 1
    Misol. MATLABda matritsalarni chapdan o’ngga burishda
    fliplr
    buyrug’idan foydalanish:
    >> A=[-1 0 1; 0 -1 0; 1 -1 1]
    A =
    -1 0 1
    0
    -1 0
    1
    -1 1
    >> fliplr(A)
    ans =
    1 0
    -1
    0
    -1 0
    1
    -1 1
    Undan tashqari
    MATLABda maxsus ko’rinishdagi matritsalarni hosil
    qilish imkoniyati bor. Ana shunday matritsalarni hosil qiluvchi buyruqlarni
    keltirib o’tamiz:
    >> A=[-1 0 1; 0 -1 0; 1 -1 1]


    78
    A =
    -1 0 1
    0
    -1 0
    1
    -1 1
    >> size(A)
    ans =
    3 3
    % ya`ni matritsaning o`lchami (3x3) o`lchamga ega bo`ladi.
    >> length(A)
    ans =
    3
    >> ndims(A)
    ans =
    % oxirgi hosil bo`lgan matritsaning elemntlari sonini chiqarish.
    2
    >> isempty(A)
    ans =
    0
    % matritsaning elementlari mavjud bo`lgani uchun 0 qiymat qaytaradi.
    Misol: Berilgan A va B matritsalarni bir biriga ko’paytirish:
    >> A=[-1 0 1; 0 -1 0; 1 -1 1]
    A =
    -1 0 1
    0
    -1 0
    1
    -1 1
    >> B=[1 1 0; 2 -1 0; 3 0 1]
    B =
    1 1 0
    2
    -1 0
    3 0 1
    >> A*B
    ans =
    2
    -1 1
    -2 1 0
    2 2
    1
    Endi shu amalni algoritmi haqida ya’ni o’z qo’limiz yordamida bajaramiz:
    >> for i=1:3; for j=1:3; C(i,j)=0; for k=1:3; C(i,j)=C(i,j)+A(i,k)*B(k,j); end; end;
    end; C
    C =
    2
    -1 1
    -2 1 0
    2 2 1
    diag(A)
    buyrug’i
    berilgan matritsaning diagonalida tugan elementlarni
    ekranga chiqaradi:
    >> A=[-1 0 1; 0 -1 0; 1 -1 1]
    A =


    79
    -1 0 1
    0
    -1 0
    1
    -1 1
    >> diag(A)
    ans =
    -1 % A matritsaning dioganal elementlarini ustun ko`rinishida chiqaradi.
    -1
    1
    1
    Shu amalni o’zimiz bajarib chqamiz:
    >> for i=1:3; D(i)=A(i,i);end; D
    D =
    -1
    -1 1
    eye(n) buyrug’i birlik matritsani hosil qiladi.
    Misol.
    >> eye(5)
    ans =
    1 0 0 0 0
    0 1 0 0 0
    0 0 1 0 0
    0 0 0 1 0
    0
    0
    0 0 1
    Endi shu matritsani m-faylga funksiyasini yaratamiz (3.10-rasm).
    3.10-rasm.
    Ushbu m-faylga birlik matritsa hosil qiladigan protsedura yasadik va uning
    nomini diagonal.m deb nomladik. Endi bu m-fayl yordamida diagonal(n) buyrug’i
    hosil bo’ldi. Endi ushbu buyruq yordamida ham eye(n) buyrug’ining bajargan ishini
    bajarsa bo’ladi:
    >> diagonal(5)
    ans =


    80
    1
    0 0 0 0
    0 1 0 0 0
    0 0 1 0 0
    0 0 0
    1 0
    0 0 0 0 1

    Download 1,09 Mb.
    1   ...   11   12   13   14   15   16   17   18   ...   29




    Download 1,09 Mb.
    Pdf ko'rish