Windows.  Viruslar.  Noutbuklar.  Internet.  Idora.  Kommunal xizmatlar.  Haydovchilar

№13 dars.

Ko'p o'lchovli massivlar

    Ko'p o'lchovli massivlar haqida tushuncha

    Ko'p o'lchovli massivlarda ":" operatoridan foydalanish

    Ko'p o'lchovli massivning alohida elementiga kirish

    Ko'p o'lchovli massivdagi o'lchamni olib tashlash

    Konstantalar bilan to'ldirilgan sahifalar yaratish va tasodifiy raqamlar

    Massivlarni birlashtirish

    Massivning o'lchamlari sonini hisoblash va o'lchamlar hajmini aniqlash

    Massiv o'lchamlarini almashtirish

    Massiv o'lchamlarini siljitish

    Birlik o'lchamlarini olib tashlash

Ushbu darsda biz ko'p o'lchovli massivlarni o'z ichiga olgan murakkabroq ma'lumotlar turlari bilan bog'liq masalalarni ko'rib chiqamiz.

Ko'p o'lchovli massivlar haqida tushuncha

MATLAB da ikki o'lchovli massiv ko'p o'lchovli massivning maxsus holatidir. Ko'p o'lchovli massivlar ikkidan katta o'lchamlar bilan tavsiflanadi. Bunday massivlarga vizual talqin berilishi mumkin. Shunday qilib, matritsa (ikki o'lchovli massiv) matritsa elementlaridan tashkil topgan qatorlar va ustunlar ko'rinishida bir varaq qog'ozga yozilishi mumkin. Keyin bunday qog'oz varaqlari bo'lgan daftarni uch o'lchovli massiv, daftarlari bo'lgan shkafdagi tokchani to'rt o'lchovli massiv, ko'p javonli shkafni besh o'lchovli massiv deb hisoblash mumkin. Ushbu kitobda, bu bo'limdan tashqari, deyarli hech bir joyda, o'lchami ikkidan yuqori bo'lgan massivlar bilan shug'ullanmaymiz, lekin ko'p o'lchovli massivlarni belgilash va ishlatish nuqtai nazaridan MATLABning imkoniyatlari haqida bilish hali ham foydalidir.

Bizning adabiyotimizda massivlarning “o‘lchami” va “o‘lchami” tushunchalari deyarli sinonimdir. Biroq, ular ushbu kitobda va MATLAB hujjatlari va adabiyotlarida aniq boshqacha ma'nolarga ega. ostida o'lcham massivlar massivlarning fazoviy tasviridagi o'lchamlar sonini bildiradi va by hajmi - har bir massiv o'lchamidagi satrlar va ustunlar soni (mxn).

Ko'p o'lchovli massivlarda ":" operatoridan foydalanish

Massivlarni an'anaviy tarzda belgilashda (";" nuqtali vergul belgisidan foydalangan holda) massivning qatorlari (chiziqlari) soni ":" belgilar sonidan 1 ga ko'p bo'ladi, lekin massiv ikki o'lchovli bo'lib qoladi. ":" (ko'p nuqta) operatori massivlar hajmini oshirish operatsiyalarini bajarishni osonlashtiradi. Qo'shish yo'li bilan uch o'lchovli massivni shakllantirishga misol keltiramiz yangi sahifa. Bizga 3x3 o'lchamdagi M boshlang'ich ikki o'lchovli massiv berilsin:

» M=

M =

1 2 3

4 5 6

7 8 9

Bir xil o'lchamdagi yangi sahifa qo'shish uchun siz M ni quyidagicha kengaytirishingiz mumkin:

» M(:.:.2)=

M(:.:.l) =

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Keling, M massivi aniq ko'rsatilganda nimani o'z ichiga olishini ko'rib chiqaylik:

» M

M(:,:.1)=

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Ko'rib turganingizdek, M(:.:, 1) va M(:,: ,2) ifodalardagi raqamlar sahifa raqamini bildiradi.

Ko'p o'lchovli massivning alohida elementiga kirish

Birinchi va keyin ikkinchi sahifaning markaziy elementini chaqirish uchun siz quyidagi iboralarni yozishingiz kerak:

» M(2.2,1)

Javob =

» MS2.2.2)

Javob =

Shunday qilib, ko'p o'lchovli massivlar bir o'lchovli va ikki o'lchovli massivlar bilan bir xil indekslash qoidalaridan foydalanadi. Ixtiyoriy element, masalan, uch o'lchovli massiv M(1 .j.k) sifatida ko'rsatilgan, bu erda 1 - satr raqami, j - ustun raqami va k - sahifa raqami. Bu element chiqishi mumkin yoki unga berilgan x qiymatini belgilashingiz mumkin: M(1,j,k)=x.

Ko'p o'lchovli massivdagi o'lchamni olib tashlash

Biz alohida ustunlarni bo'sh ustun vektorining qiymatlarini belgilash orqali o'chirish imkoniyatini allaqachon qayd etganmiz. Ushbu texnikani sahifalarga va umuman, ko'p o'lchovli massivning o'lchamlariga kengaytirish oson. Masalan, hosil bo'lgan M massivning birinchi sahifasi quyidagicha o'chirilishi mumkin:

» M(:.:.1)=

M =

10 11 12

13 14 15

16 17 18

Bu massivda faqat ikkinchi sahifa qolganini va massivning o'lchami 1 ga qisqarganini ko'rish oson - u ikki o'lchovli bo'ldi.

Konstantalar va tasodifiy raqamlar bilan to'ldirilgan sahifalarni yaratish

Agar tayinlash belgisidan keyin raqamli konstanta mavjud bo'lsa, u holda massivning mos keladigan qismida ushbu doimiyni o'z ichiga olgan elementlar mavjud bo'ladi. Masalan, M massividan (yuqoridagi misolga qarang) ikkinchi sahifasida bittalar joylashgan massiv yarataylik:

"M(:.:..2)=1

M(:.:,1) =

10 11 12

13 14 15

16 17 18

M(:.:.2) =

1 1 1

1 1 1

1 1 1

Endi massivning birinchi sahifasini nol elementli sahifa bilan almashtiramiz:

"M(:.:.1)=0

M(:.:.1)=

0 0 0

0 0 0

0 0 0

M(:.:,2) =

1 1 1

1 1 1

1 1 1

Birlik, nol, rand va randn funksiyalaridan foydalanish

Ko'p o'lchovli massivlarni yaratish uchun ones (birlik elementlari bilan massivlar yaratish), nollar (nol elementli massivlar yaratish) va rand yoki randn (elementlar bilan massivlar yaratish - mos ravishda bir xil va normal taqsimlangan tasodifiy sonlar) funktsiyalaridan ham foydalanish mumkin. Quyida misollar keltirilgan:

» E=bir(3.3.2)

E(:.:.1)=

1 1 1

1 1 1

1 1 1

E(:.:,2) =

1 1 1

1 1 1

1 1 1

» Z=nol(2,2,3) Z(:,:.l) =

Z(:.:.2) =

Z(:.:,3) =

» R=randn(3,2.2) R(:.:.l) =

1.6656-1.1465

0.1253 1.1909

0.2877 1.1892

R(:.:,2) =

0.0376-0.1867

0.3273 0.7258

0.1746 -0.5883

Bu misollar juda aniq va maxsus izohlarni talab qilmaydi. Biroq, har bir o'lcham uchun massiv o'lchamlarini belgilash oson ekanligini unutmang. Bundan tashqari, shuni ta'kidlash kerakki, agar massivning kamida bitta o'lchami nolga teng bo'lsa, u holda massiv bo'sh bo'ladi:

» A=randn(3,3,3,0)

A =

Bo'sh massiv: 3-bu-3-bu-3-by-0

dan ko'rinib turganidek bu misol, bo'sh massiv tegishli izoh bilan qaytadi.

Massivlarni birlashtirish

Ko'p o'lchovli massivlarni yaratish uchun matritsalar uchun avval tavsiflangan usuldan foydalaning. maxsus funktsiya birlashtiruvchi mushuk:

    cat(DIM,A,B) - DIM o'lchami bo'yicha ikkita A va B massivlarni birlashtirish natijasini qaytaradi;

    cat(2.A.B) - qatorlar birlashtirilgan [A.B] massivini qaytaradi (gorizontal birlashma);

    cat(1, A.V) - [A:B] massivni qaytaradi, unda ustunlar birlashtiriladi (vertikal birlashma);

    B=cat(DIM.Al,A2,...) - DIM o'lchami bo'ylab bir nechta kirish massivlarini Al, A2,... birlashtiradi.

cat(DIM,C(:)) va cat(DIM.C.FIELD) funktsiyalari mos ravishda hujayralar massivi (15-darsga qarang) yoki bir qator tuzilmalar tuzilmalari (14-darsga qarang) hujayralarini birlashtirishni (birlashtirishni) ta'minlaydi. raqamli matritsalarni bitta matritsaga aylantiradi. Quyida mushuk funktsiyasidan foydalanishga misollar keltirilgan:

» M1=

» M2=

M2 =

» catd.Ml.M2)

Javob =

5 B

» mushuk(2.Ml.M2)

ans=

1 2 5 6

3 4 7 8

» M-mushuk(3.Ml.M2) M(:,:.l) =

M(:,:,2) =

O'lchovlar bilan ishlash

Massiv o'lchamlari sonini hisoblash

Ndims(A) funksiyasi A massivining hajmini qaytaradi (agar u ikkitadan katta yoki teng bo'lsa). Ammo agar kiritish argumenti Java massivi yoki Java massivlari massivi bo‘lsa, massivning o‘lchamidan qat’iy nazar, bu funksiya 2 ni qaytaradi. Quyidagi misol ndims funksiyasidan foydalanishni ko‘rsatadi:

» M=rand(2:3:4:5):

» ndims(M)

Javob =

4
Massiv o'lchamining o'lchamini hisoblash

Massivning har bir o'lchamining o'lchamini hisoblash uchun o'lcham funktsiyasidan foydalaning:

    M = size(A.DIM) DIM skalyar tomonidan belgilangan oʻlcham oʻlchamini 2 oʻlchamli qator vektori sifatida qaytaradi. Ikki oʻlchovli yoki bir oʻlchovli A massivi uchun size(A.l) qatorlar sonini qaytaradi, a. size(A, 2) ustunlar sonini qaytaradi;

N>2 oʻlchamli (A) N oʻlchamli massivlar uchun massivning sahifa tashkil etilishini aks ettiruvchi N oʻlchovli qator vektorini qaytaradi, bu vektorning oxirgi komponenti N ga teng. Vektorda birlik oʻlchamlari boʻyicha maʼlumotlar yoʻq ( satr vektori yoki ustun vektori bo'lganlar, ya'ni o'lcham(A,DIM)==l). Istisno - Java-ning N-o'lchovli javaarray massivlari, ular eng yuqori darajadagi massiv hajmini qaytaradi.

Umuman olganda, kiritilgan argument hajmi javaarray bo'lsa, qaytarilgan ustunlar soni har doim 1 ga teng bo'ladi va qatorlar (satrlar) soni javaarray hajmiga (uzunligi) teng bo'ladi.

    Si ze(A) A massivning birinchi N o‘lchamining o‘lchamini qaytaradi;

    D = hajmi (A), mxn matritsa uchun A ikki elementli satr vektorini qaytaradi, bunda birinchi komponent qatorlar soni m, ikkinchi komponent esa n ustunlar soni;

    Size(A) turli xil chiqishlar (MATLAB terminologiyasida chiqish argumentlari) turidagi satrlar va ustunlar sonini qaytaradi.

Massiv o'lchamlarini almashtirish

Agar biz ko'p o'lchovli massivni sahifalar ko'rinishida tasavvur qilsak, u holda ularning o'rnini almashtirish massiv o'lchamlarini almashtirishdir. Ikki o'lchovli massiv uchun almashtirish ko'pincha anglatadi transpozitsiya- satrlarni ustunlar bilan almashtirish va aksincha. Quyidagi funktsiyalar matritsani ko'p o'lchovli massivlar holatiga o'tkazishni umumlashtiradi va ko'p o'lchovli massivlar o'lchamlarini almashtirishni ta'minlaydi:

    O'zgartirish (A, ORDER) - A massivning o'lchamlarini ORDER almashtirish vektori bilan aniqlangan tartibda qayta tartibga soladi. ORDER vektori 1 dan 1 gacha bo'lgan barcha butun sonlarning mumkin bo'lgan almashtirishlaridan biridir N, Qayerda N- massiv o'lchami A;

    ipermuteCA, ORDER) - almashtirishning teskari amali: permute(permute(A. ORDER), ORDER)=A

Quyida ushbu funksiyalar va oʻlcham funksiyasidan foydalanish misollari keltirilgan:

"A=:

"B =;

» C=;

» D = mushuk (3.A, B.C)

D(:,:,l) =

9 10

11 12

"hajmi (D)

Javob =

2 2 3

» o'lcham (o'zgartirish (D.))

ans=

3 2 2

»hajmi(ipermute(D.))

Javob=

2 2 3

»ipermute(oʻzgartirish(D,),)

Javob(:. :,2) =

ans(:.:,3) =

9 10

11 12

Massiv o'lchamlarini siljitish

O'lchamlarning siljishi shiftdim funktsiyasi tomonidan amalga oshiriladi:

    B=shiftdim(X,N) - X massivdagi o'lchamlarning N miqdoriga siljishi. Agar M>0 bo'lsa, o'ng tomonda joylashgan o'lchamlarni chapga siljitish amalga oshiriladi va N o'lchamlar birinchi bo'lib chap tomonda bo'ladi. massivning oxirigacha yiqildi, ya'ni o'lchamlar soat sohasi farqli ravishda aylana bo'ylab harakatlanadi. Agar M<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;

    Shiftdim(X) - B massivini X massivdagi kabi elementlar soni bilan bir xil, lekin dastlabki birlik o'lchamlari olib tashlangan holda qaytaradi. NSHIFTS chiqish parametri olib tashlangan o'lchamlar sonini ko'rsatadi. Agar X skaler bo'lsa, funksiya X, B, NSHIFTS ni o'zgartirmaydi.

Quyidagi misol shiftdim funktsiyasidan foydalanishni ko'rsatadi:

» A=randn(1.2.3,4):

" =shiftdim(A)

B(:.:.l) =

2.1707-1.01060.5077

0.05920.6145 1.6924

B(:.:,2) =

0.5913 0.3803 -0.0195

0.6436-1.0091-0.0482

B(:.:.3) =

0.0000 1.0950 0.4282

0.3179-1.87400.8956

B(:.:,4) =

0.7310 0.0403 0.5689

0.5779 0.6771 -0.2556

Birlik o'lchamlarini olib tashlash

Squeeze(A) funksiyasi barcha birlik o'lchamlari olib tashlangan massivni qaytaradi. O'lcham (A. dim) == 1 bo'lgan o'lchov birlik deb ataladi

A - bir o'lchovli yoki ikki o'lchovli massiv (matritsa yoki vektor), u holda funksiya bir xil A massivni qaytaradi. Quyidagi misol siqish qanday ishlashini tushuntiradi:

» A=randn(1.2.1.3.1):

"B = siqish (A)

0.6145 1.6924 -0.6436

0.5077 0.5913 0.3803

E'tibor bering, besh o'lchovli massiv A 2x3 o'lchamli 2 o'lchovli massivga aylanadi.

Biz qanday yangi narsalarni o'rgandik?

Ushbu darsda biz quyidagilarni bilib oldik:

    Ko'p o'lchovli massivlarni yarating.

    Ko‘p o‘lchovli massivlarda “:” operatoridan foydalaning.

    Ko'p o'lchovli massivlarning alohida elementlariga kirish.

    Ko'p o'lchovli massivdan o'lchamlarni olib tashlang.

    Konstantalar va tasodifiy sonlar bilan to'ldirilgan massivlarni yarating.

    Massivlarni birlashtirish.

    Massivning o'lchamlari sonini hisoblang va har bir o'lchamning o'lchamini aniqlang.

    Ko'p o'lchovli massivlarda birlik o'lchamlarini qayta tartibga solish, siljitish va o'chirish.

Massivlar tizimdagi asosiy ob'ektlardir MATLAB : faqat 4.x versiyalarida ruxsat berilganbir o'lchovli massivlar- vektorlar - va ikki o'lchovli massivlar - matritsalar; 5.0 versiyada ko'p o'lchovli massivlar - tensorlardan foydalanish mumkin. Quyida massivlar va matritsalarni shakllantirish funksiyalari, matritsalar ustida amallar, tizim ichidagi maxsus matritsalar tasvirlangan. MATLAB versiyalari 4.x.

Maxsus turdagi massivlarni shakllantirish

  • NOLAR - nollar massivini shakllantirish
  • BIRLAR - birliklar massivini shakllantirish
  • KO'Z - birlik matritsasini shakllantirish
  • RAND - yagona qonun bo'yicha taqsimlangan elementlar massivini shakllantirish
  • RANDN - normal qonun bo'yicha taqsimlangan elementlar massivini shakllantirish
  • KESIB O'TISH - vektor mahsuloti
  • KRON - tenzor mahsulotini hosil qilish
  • LINSPACE - teng masofada joylashgan tugunlarning chiziqli massivini shakllantirish
  • LOGSPACE - logarifmik panjara tugunlarini shakllantirish
  • MESHGRID - ikki o'lchovli va uch o'lchovli to'rlarning tugunlarini shakllantirish
  • : - vektorlar va submatritsalarni shakllantirish

Matritsalar ustida amallar

  • DIAG - matritsa diagonallarini shakllantirish yoki chiqarish
  • TRIL - pastki uchburchak matritsa (massiv) hosil bo'lishi
  • TRIU - yuqori uchburchak matritsa (massiv) hosil bo'lishi
  • FLIPLR - matritsaning vertikal o'qga nisbatan aylanishi
  • FLIPUD - matritsaning gorizontal o'qga nisbatan aylanishi
  • ROT90 - matritsaning 90 daraja aylanishi
  • QAYTA QILISH - matritsa hajmini konvertatsiya qilish

Maxsus matritsalar

  • KOMPAN - xarakterli polinomning hamroh matritsasi
  • HADAMARD - Hadamard matritsasi
  • HANKEL - Hankel matritsasi
  • HILB, INVHILB - Hilbert matritsasi
  • SEHR - sehrli kvadrat
  • PASKAL - Paskal matritsasi
  • ROSSER - Rosser matritsasi
  • TOEPLITZ - Toeplitz matritsasi
  • VANDER - Vandermonde matritsasi
  • WILKINSON - Uilkinson matritsasi

KO'RISH, DECONV

Bir o'lchovli massivlarning konvolyutsiyasi

Sintaksis:

Z = konv(x, y)
= dekonv(z, x)

Tavsif:

Belgilangan bo'lsa bir o'lchovli massivlarx va y uzunligi mos ravishda m = uzunlik(x) va n = uzunlik(y), u holda konvolyutsiya z uzunligi m + n -1 bo‘lgan bir o‘lchovli massiv bo‘lib, uning k-elementi formula bilan aniqlanadi.

z = conv(x, y) funktsiyasi ikkita bir o'lchovli x va y massivlarning z konvolyutsiyasini hisoblaydi.

Ushbu massivlarni ikkita signal namunasi sifatida ko'rib chiqsak, konvolyutsiya teoremasini quyidagi shaklda shakllantirishimiz mumkin:
Agar X = fft() va Y = fft() x va y signallarining o'lchamiga mos keladigan Furye transformatsiyasi bo'lsa, u holda conv(x, y) = ifft(X.*Y) munosabati o'rinli bo'ladi.

Boshqacha qilib aytganda, ikkita signalning konvolyutsiyasi bu signallarning Furye o'zgarishlarini ko'paytirishga teng.

= deconv(z, x) funktsiyasi konvolyutsiyaga teskari amalni bajaradi. Bu operatsiya filtrning impuls javobini aniqlashga teng. Agar z = conv(x, y) munosabati to'g'ri bo'lsa, q = y, r = 0 bo'ladi.

Tegishli xususiyatlar: Signalni qayta ishlash asboblar to'plami.

1. Signalni qayta ishlash asboblar to'plami foydalanuvchilari uchun qo'llanma. Natik: MathWorks, Inc., 1993 yil.

Matritsalar va vektorlar shablonini o'rnatish (Matrits...)

Matritsa... operatsiyasi vektorlar yoki matritsalarning ta'rifini ta'minlaydi, Ma'lumki, matritsa o'z nomi bilan ma'lumotlar massivi ko'rinishida ko'rsatilgan ob'ektdir MathCAD dan foydalanadi bir o'lchovli massivlarvektorlar va ikki o'lchovli matritsalarning o'zlari

Matritsa qatorlar soni (Qatorlar) va ustunlar soni (ustunlar) bilan tavsiflanadi. Shunday qilib, matritsa elementlarining soni yoki uning o'lchami Qatorlar x Ustunlarga teng. Matritsalar elementlari sonlar, doimiylar, o'zgaruvchilar va hatto matematik ifodalar bo'lishi mumkin Shunga ko'ra, matritsalar sonli va ramziy bo'lishi mumkin

Agar siz Matritsa... operatsiyasidan foydalansangiz, joriy oynada vektor yoki matritsaning o'lchamini belgilash imkonini beruvchi kichik oyna paydo bo'ladi (buni amalga oshirish uchun o'ngdagi 515-rasmga qarang). qatorlar soni Satrlar va ustunlar soni Ustunlar Enter tugmasini bosish yoki sichqoncha kursorini tugma tasviriga yo'naltirish orqali Insert oynada matritsa yoki vektor shablonini ko'rsatishingiz mumkin (vektor o'lchov parametrlaridan biriga teng 1)

Shablon vektor yoki matritsa elementlari uchun qiymatlarni (raqam yoki belgi) kiritishingiz mumkinligini ko'rsatadigan chegara qavslari va kichik qorong'i to'rtburchaklarni o'z ichiga oladi. To'rtburchaklardan birini faollashtirish mumkin (uni sichqoncha kursori bilan belgilash orqali). Shu bilan birga, u burchakka o'ralgan. Bu unga tegishli elementning qiymatlari kiritilishini ko'rsatadi. Kursor tugmalaridan foydalanib, siz barcha to'rtburchaklar bo'ylab gorizontal harakat qilishingiz va vektor yoki matritsaning barcha elementlarini kiritishingiz mumkin.


Guruch. 5. 15 Vektor va matritsa shablonlarini chiqarish va ularni to'ldirish

Vektorlar yoki matritsalar elementlari kiritilayotganda, bo'sh shablonlar hech qanday izohlarsiz ko'rsatiladi. Biroq, agar siz shablonlarni to'liq to'ldirishdan oldin kiritishni tugatsangiz, tizim xato xabarini ko'rsatadi: to'ldirilmagan shablon qizil rangga aylanadi. Mavjud bo'lmagan matritsaning chiqishi yoki uning indekslarining noto'g'ri ko'rsatilishi ham qizil rangda ko'rsatiladi.

Agar siz matritsa shablonini allaqachon chiqarilganda "Qo'shish" operatsiyasidan foydalansangiz, matritsa kengaytiriladi va uning hajmi kattalashadi. O'chirish tugmasi matritsaning kengayishini undan qator yoki ustunni o'chirish orqali olib tashlash imkonini beradi.

Har bir matritsa elementi indekslangan o'zgaruvchi bilan tavsiflanadi va uning matritsadagi o'rni ikkita indeks bilan ko'rsatiladi: biri satr raqamini, ikkinchisi ustun raqamini ko'rsatadi. Indekslangan o'zgaruvchini o'rnatish uchun avvalo o'zgaruvchining nomini kiritish kerak, so'ngra belgini kirituvchi tugmachani bosib indekslar to'plamiga o'ting]. Avval satr indeksi, keyin esa vergul bilan ajratilgan ustun indeksi belgilanadi. Indekslangan o'zgaruvchilarni chiqarish misollari (M matritsasining elementlari) rasmda ham keltirilgan. 5.14.

Bir satr yoki bitta ustunga degeneratsiyalangan matritsa vektor hisoblanadi. Uning elementlari bitta indeksli indekslangan o'zgaruvchilardir. Indekslarning pastki chegarasi ORIGIN tizim o'zgaruvchisining qiymati bilan belgilanadi. Odatda uning qiymati 0 yoki 1 ga o'rnatiladi.

Oddiy o'zgaruvchilar bilan operatsiyalar yuqorida muhokama qilindi. Biroq, ularning yordami bilan murakkab ma'lumotlarni tasvirlash qiyin, masalan, filtrning kirishiga keladigan tasodifiy signal yoki tasvir ramkasini saqlash va hokazo. Shuning uchun yuqori darajadagi tillar qiymatlarni massivlar shaklida saqlash imkoniyatini beradi. MatLab da bu rolni vektorlar va matritsalar bajaradi.

Quyida a deb nomlangan va 1, 2, 3, 4 qiymatlarini o'z ichiga olgan vektorni ko'rsatish misoli keltirilgan:

a = ; % qator vektori

Muayyan vektor elementiga kirish uchun quyidagi til konstruktsiyasidan foydalaniladi:

disp(a(1)); % vektorning 1-elementi qiymatini ko'rsatadi
disp(a(2)); % vektorning 2-elementi qiymatini ko'rsatadi
disp(a(3)); % vektorning 3-elementi qiymatini ko'rsatadi
disp(a(4)); % vektorning 4-elementi qiymatini ko'rsatadi

bular. vektor nomini ko'rsatishingiz kerak va qavslar ichida siz ishlashingiz kerak bo'lgan elementning indeks raqamini yozing. Masalan, massivning 2-elementi qiymatini 10 ga o'zgartirish uchun yozish kifoya

a(2) = 10; % 2-elementning qiymatini 10 ga o'zgartiring

Ko'pincha vektordagi elementlarning umumiy sonini aniqlashga ehtiyoj bor, ya'ni. uning hajmini aniqlash. Buni quyidagi kabi length() funksiyasi yordamida amalga oshirish mumkin:

N = uzunlik (a); % (N=4) a massiv elementlari soni

Agar siz ustun vektorini belgilashingiz kerak bo'lsa, buni shunday qilishingiz mumkin

a = ; % ustun vektori

b = '; % ustun vektori

bu holda vektorlar elementlariga kirish xuddi qator vektorlari bilan bir xil tarzda amalga oshiriladi.

Shuni ta'kidlash kerakki, vektorlar faqat alohida raqamlar yoki o'zgaruvchilardan emas, balki vektorlardan ham tuzilishi mumkin. Masalan, quyidagi dastur fragmenti bir vektorni boshqasidan qanday yaratish mumkinligini ko'rsatadi:

a = ; % boshlang'ich vektor a =
b = ; % soniya vektor b =

Bu erda b vektor oltita elementdan iborat bo'lib, a vektori asosida yaratilgan. Ushbu texnikadan foydalanib, dastur ishlayotgan paytda vektorlar hajmini oshirishingiz mumkin:

a = ; a vektorining bir elementga % ortishi

Ta'riflangan vektorlarni belgilash (insiallashtirish) usulining kamchiliklari, masalan, 100 yoki 1000 elementdan iborat katta o'lchamdagi vektorlarni aniqlashning qiyinligi. Ushbu muammoni hal qilish uchun MatLab vektorlarni nol, birlik yoki tasodifiy qiymatlar bilan ishga tushirish funktsiyalariga ega:

a1 = nollar (1, 100); % satr vektori, 100 ta element s
% nol qiymatlar
a2 = nollar (100, 1); % ustun vektori, 100 ta element s
% nol qiymatlar
a3 = bir (1, 1000); % satr vektori, 1000 ta element s
yagona qiymatlarda %
a4 = bir (1000, 1); % ustun vektori, 1000 element s
yagona qiymatlarda %
a5 = rand(1000, 1); % ustun vektori, 1000 ta element bilan
% tasodifiy qiymatlar

MatLab-dagi matritsalar vektorlarga o'xshash tarzda belgilanadi, yagona farq shundaki, ikkala o'lcham ham ko'rsatilgan. Mana 3x3 identifikator matritsasi ishga tushirish misoli:

E = ; % 3x3 identifikatsiya matritsasi

E = ; % 3x3 identifikatsiya matritsasi

Xuddi shunday, siz boshqa har qanday matritsalarni belgilashingiz mumkin, shuningdek, yuqoridagi zero(), ones() va rand() funksiyalaridan foydalanishingiz mumkin, masalan:

A1 = nollar (10,10); % nol matritsa 10x10 elementlar

A2 = nollar (10); % nol matritsa 10x10 elementlar
A3 = birlar(5); % 5x5 matritsa birlardan iborat
A4 = rand (100); % matritsa 100x100, tasodifiy sonlardan

Matritsa elementlariga kirish uchun vektorlar bilan bir xil sintaksisdan foydalaniladi, lekin kerakli element joylashgan satr va ustunni ko'rsatish bilan:

A = ; % 3x3 matritsa
disp(A(2,1)); % joylashgan elementni ko'rsatadi
Birinchi ustunning ikkinchi qatorida %, ya'ni. 4
disp(A(1,2)); % joylashgan elementni ko'rsatadi
% ikkinchi ustunning birinchi qatorida, ya'ni. 2

Matritsaning belgilangan qismini tanlash operatsiyalari ham mumkin, masalan:

B1 = A(:,1); %B1 = – birinchi ustunni ajratib ko‘rsatish
B2 = A(2,:); %B2 = – birinchi qatorni ajratib ko‘rsatish
B3 = A(1:2,2:3); % B3 = – birinchi ikkitasini ajratib ko'rsatish
A matritsasining satrlari va 2 va 3 ustunlari %.

MatLab-dagi har qanday matritsa yoki vektorning o'lchamini argument sifatida ko'rsatilgan o'zgaruvchining satrlari va ustunlari sonini qaytaradigan size() funksiyasi yordamida aniqlash mumkin:

a = 5; % oʻzgaruvchisi a
A = ; % qator vektori
B = ; % 2x3 matritsa
hajmi(a) % 1x1
hajmi(A) % 1x3
hajmi(B) % 2x3

Massiv o'lchamlari sonini hisoblash

Funktsiya ndims(A) A massivning o'lchamini qaytaradi (agar u ikkitadan katta yoki teng bo'lsa). Ammo agar kiritish argumenti Java massivi yoki Java massivlari massivi bo'lsa, massivning o'lchamidan qat'i nazar, bu funktsiya 2 ni qaytaradi. Quyidagi misol funktsiyadan foydalanishni ko'rsatadi. ndims:

> > M = rand(2: 3: 4: 5):

>> ndims(M)

Javob =

Massiv o'lchamining o'lchamini hisoblash

Massivning har bir o'lchamining o'lchamini hisoblash uchun funktsiyadan foydalaning hajmi:

  • M = o'lcham (A.DIM) DIM skalyar tomonidan 2 o'lchamli satr vektori sifatida belgilangan o'lcham hajmini qaytaradi. Ikki o'lchovli yoki bir o'lchovli A massivi uchun size(A.l) qatorlar sonini, o'lcham(A, 2) esa ustunlar soni;

N>2 oʻlchamli (A) N-oʻlchovli massivlar uchun massivning sahifa tashkil etilishini aks ettiruvchi N oʻlchovli qator vektorini qaytaradi, bu vektorning oxirgi komponenti N ga teng. Vektorda birlik oʻlchamlari boʻyicha maʼlumotlar mavjud emas ( satr vektori yoki ustun vektori bo'lganlar, ya'ni o'lcham(A,DIM)==l). Istisno - Java-ning N-o'lchovli javaarray massivlari, ular eng yuqori darajadagi massiv hajmini qaytaradi.

Umuman olganda, kiritilgan argument hajmi javaarray bo'lsa, qaytarilgan ustunlar soni har doim 1 ga teng bo'ladi va qatorlar (satrlar) soni javaarray hajmiga (uzunligi) teng bo'ladi.

  • = hajmi(A) A massivning birinchi N o'lchamining hajmini qaytaradi;
  • D = o'lcham (A), mxn matritsasi uchun A ikki elementli qator vektorini qaytaradi, bunda birinchi komponent qatorlar soni m, ikkinchi komponent esa n ustunlar soni;
  • = hajmi(A) turli chiqish parametrlari (MATLAB terminologiyasida chiqish argumentlari) turidagi satr va ustunlar sonini qaytaradi.

Massiv o'lchamlarini almashtirish

Agar biz ko'p o'lchovli massivni sahifalar ko'rinishida tasavvur qilsak, u holda ularning o'rnini almashtirish massiv o'lchamlarini almashtirishdir. Ikki o'lchovli massiv uchun almashtirish ko'pincha anglatadi transpozitsiya- satrlarni ustunlar bilan almashtirish va aksincha. Quyidagi funktsiyalar matritsani ko'p o'lchovli massivlar holatiga o'tkazishni umumlashtiradi va ko'p o'lchovli massivlar o'lchamlarini almashtirishni ta'minlaydi:

  • almashtirish (A, ORDER)- A massivning o'lchamlarini ORDER almashtirish vektori bilan aniqlangan tartibda qayta tartibga soladi. ORDER vektori - 1 dan N gacha bo'lgan barcha butun sonlarning mumkin bo'lgan almashtirishlaridan biri, bu erda N - A massivning o'lchami;
  • ipermute(A, ORDER)- o'zgartirishga teskari operatsiya: o'zgartirish(o'zgartirish(A. ORDER), ORDER)=A

Quyida ushbu funksiyalar va funksiyalardan foydalanish misollari keltirilgan hajmi:

> > A = [ 1 2: 3 4 ]:

> > B = [5 6; 7 8 ];

>> C = [9 10; 11 12 ];

> > D = mushuk (3 .A, BC)

D(:,:, 1) =

1 2

3 4

9 10

11 12

> > hajmi (D)

Javob =

2 2 3

> > o‘lcham(o‘zgartirish(D.[ 3 2 1 ]))

Javob =

3 2 2

> > hajmi(ipermute(D.[ 2 1 3 ]))

Texnik hisoblash tili

Dunyo bo'ylab millionlab muhandislar va olimlar MATLAB ® dan dunyomizni o'zgartiradigan tizimlar va mahsulotlarni tahlil qilish va loyihalash uchun foydalanadilar. MATLAB matritsa tili hisoblash matematikasini ifodalashning dunyodagi eng tabiiy usuli hisoblanadi. Integratsiyalashgan grafikalar ma'lumotlarni vizuallashtirish va tushunishni osonlashtiradi. Ish stoli muhiti tajriba, izlanish va kashfiyotlarni rag'batlantiradi. Ushbu MATLAB vositalari va imkoniyatlari sinchkovlik bilan sinovdan o'tgan va birgalikda ishlashga mo'ljallangan.

MATLAB sizning g'oyalaringizni ish stolidan tashqariga olib chiqishga yordam beradi. Katta ma'lumotlar to'plamlari bo'yicha tadqiqotlar o'tkazishingiz va klasterlar va bulutlarga o'tkazishingiz mumkin. MATLAB kodi boshqa tillar bilan birlashtirilishi mumkin, bu sizga algoritmlar va ilovalarni tarmoq, korxona va sanoat tizimlariga joylashtirish imkonini beradi.

Ishning boshlanishi

MATLAB asoslarini o'rganing

Til asoslari

Sintaksis, massivlarni indekslash va qayta ishlash, ma’lumotlar turlari, operatorlar

Ma'lumotlarni import qilish va tahlil qilish

Ma'lumotlarni, shu jumladan katta hajmdagi fayllarni import va eksport qilish; ma'lumotlarni oldindan qayta ishlash, vizualizatsiya va tadqiqot

Matematika

Chiziqli algebra, differensiallash va integrasiya, Furye o‘zgarishlari va boshqa matematika

Grafika san'ati

2D va 3D grafika, tasvirlar, animatsiya

Dasturlash

Skriptlar, funktsiyalar va sinflar

Ilova yaratish

App Designer, Programmable Workflow yoki GUIDE yordamida ilovalarni ishlab chiqing

Dasturiy ta'minotni ishlab chiqish vositalari

Nosozliklarni tuzatish va sinovdan o'tkazish, yirik loyihalarni tashkil etish, versiyalarni boshqarish tizimi bilan integratsiya, asboblar qutilarini qadoqlash

Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl+Enter tugmalarini bosing
UMUSHISH: