Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпор кмр Сагындык.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
192.37 Кб
Скачать

19. Массив және сандармен логикалық өрнектер құрыңыз. Қатынас (жағдай) операциялар. Логикалық операциялар. Операциялардың артықшылығын түсіндіріңіз.

MATLAB тағы кәдімгі индекстеу вектордың элементтерін шақыру неемесе индекс массивтері арқылы орындалады.

Мысалы қандай да вектора бар делік>> y=[1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9];

Онда оның бесінші элементін шақыру үшін келесідей жазамыз:

>> a=y(5)

a =

5.5000

Егер де b векторына оның төртіншіден бастап жетіншіге дейінгі элементтерін енгізу үшін онда индекстеу сечение арқылы жүргізіледі:

>> b=y(5:7)

b =

5.5000 6.6000 7.7000

Вектор элементінің жұп индекстерін шақыру үшін индексацияны индекс векторы арқылы жүргіземіз:

>>ind=2:2:length(y)

ind =

2 4 6 8

>> d=y(ind)

d =

2.2000 4.4000 6.6000 8.8000

Барлық тәсілдер қарапайым индексацияға жатады.

Логикалық индексацияда массив элементтерін таңдау үшін шарт қойылады.Мысалы,егер қандай да у векторының ұзындығына сәйкес логикалық вектор құру керек болса,ондағы логикалық бірлік у векторының бестен кем болатын элементіне сәйкес болып,ал логикалық ноль у векторының бестен үлкен немесе тең болатын элеметтеріне сәйкес,онда у массиві үшін салыстыру операциясын қолданып логикалық тұжырым келесідей болады:

(кем белгісі <):

>>index = y<5

index =

1 1 1 1 0 0 0 0 0

Егер артық болатын элементтерді анықтау керек болса,мысалы барлық у элементтерінің орташа мәндерінің біржарымға үлкен мәнін,онда логикалық индекстеуді және mean функциясын қолданамыз:

>>index=y>1.5*mean(y)

index =

0 0 0 0 0 0 0 1 1

Салыстыру операциясы үшін мынандай белгілер қолданылады:

== (екі белгі = логикалық "тең"), >, >=, <, <= и ~= ("тең емес").

Қиынырақ шарттар беру үшін төменгі кестеде келтірілген логикалық приоритеті кему ретіндегі операцияларды қолданамыз:

Логикалық операцияларда функциаоналдық жазу формасы бар.Мысалы:

A&B және and(A,B) ұқсас жауап береді.

Мұндағы A және B –логикалық массивтер,олар жоғарғы мысалдағыдай массивтерге салыстыру операциясын қолдану арқылы алынады.

А және В массивтерінің сәйкес келетін элеметтерге поэлементно кәдімгі логикалық операциялар қолданады,жауап ретінде логикалық массив болады.

Егер де біз жоғарыда келтірілген массив үшін логикалық массив келтіретін болсақ,ондағы логикалық элементтер у массивінің элементіне жауап келтіретін болып,үштен төртке дейінгі аралықта жататын болса,онда осыған сәйкес келесі логикалық тұжырым шығады:

>> A = y>=3

A =

0 0 1 1 1 1 1 1 1

>> B = y<=6

B =

1 1 1 1 1 0 0 0 0

>>index = A&B

index =

0 0 1 1 1 0 0 0 0

Әрине А және В қосымша массивтерді қолданбайсақ та болады:

>> index = (y>=3) & (y<=6)

index =

0 0 1 1 1 0 0 0 0

Салыстыру операцияларында логикалық операцияларға қарағанда артық приоритеті болады,сондықтан да жақшасыз та жазуға болады:

>> index = y>=3 & y<=6

Қандай да х (тәуелсіз айнымалының мәні) және y (y(i) - x(i)ден тәуелді айнымалы) массиві берілсін делік.Одан логикалық бірліктер у массивінің екі түзу сызықпен шектелген жолақта жататын элементтеріне сйкес болатын логикалық массив құрастыру қажет.

y = 0.7x + 0.2 и y = 0.7x - 0.2

>> x=0:0.2:3;

>> y=2*sin(x);

>>index = (y<=0.7*x+0.2) & (y>=0.7*x-0.2)

index =

1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

Шыққан логикалық массивтерді индексацияда қолдана аламыз,яғни index логикалық массивті беріп.Индекс у векторы у элементтерінен келесі шартты қанағаттандыратын векторды алады:

>> y1=y(index)

y1 =

0 1.61