Warunkowe oświadczenie, jeśli

W samym prosty przypadek składnia podany operator jeśli wygląda tak:

jeśli<выражение>
<операторы>
koniec

Zwracam uwagę na fakt, że w przeciwieństwie do współczesne języki programowanie nie używa czegoś takiego jak instrukcja złożona. Warunkowy blok instrukcji musi się kończyć oficjalne słowo koniec.

Poniżej znajduje się przykładowa implementacja funkcji sign(), która zwraca +1, jeśli liczba jest większa od zera, -1, jeśli liczba jest mniejsza od zera, i 0, jeśli liczba jest zerem:

x=5;
jeśli x > 0
disp(1);
koniec
jeśli x< 0
disp(-1);
koniec
jeśli x == 0
disp(0);
koniec

Analiza podanego przykładu pokazuje, że wszystkie te trzy warunki wzajemnie się wykluczają, tj. gdy jeden z nich zostanie uruchomiony, nie ma potrzeby sprawdzania pozostałych. Wdrożenie właśnie takiej logiki przyspieszy wykonanie programu. Można to osiągnąć za pomocą konstrukcji

jeśli<выражение>
<операторы1>% wykonywane, jeśli warunek jest spełniony
w przeciwnym razie
<операторы2>% wykonywane, jeśli warunek jest fałszywy
koniec

Wtedy powyższy przykład można zapisać w następujący sposób:

X=5;
jeśli x > 0
disp(1);
w przeciwnym razie
jeśli x< 0
disp(-1);
w przeciwnym razie
disp(0);
koniec
koniec

Ten program najpierw sprawdza, czy zmienna x jest dodatnia, a jeśli tak, to na ekranie wyświetlana jest wartość 1, a wszystkie inne warunki są ignorowane. Jeśli pierwszy warunek okazał się nieprawdziwy, to wykonanie programu przechodzi w przeciwnym razie (w przeciwnym razie) do drugiego warunku, w którym zmienna x jest sprawdzana pod kątem ujemności, a jeśli warunek jest spełniony, na ekran. Jeśli oba warunki są fałszywe, wyprowadzane jest 0.

Powyższy przykład można napisać w prostszej formie, używając innej konstrukcji instrukcji if z MatLaba:

jeśli<выражение1>
<операторы1>% wykonywane jeśli wyrażenie1 jest prawdziwe
elseif<выражение2>
<операторы2>% wykonywane jeśli wyrażenie2 jest prawdziwe
...
elseif<выражениеN>
<операторыN>% wykonywane jeśli wyrażenieN jest prawdziwe
koniec

i jest napisane w następujący sposób:

x=5;
jeśli x > 0
disp(1); % jest wykonywany, jeśli x > 0
elseif x< 0
disp(-1); % jest wykonywane, jeśli x< 0
w przeciwnym razie
disp(0); % jest wykonywany, jeśli x = 0
koniec

Za pomocą instrukcji if możesz przetestować bardziej złożone (złożone) warunki. Na przykład musisz określić: czy zmienna x mieści się w zakresie wartości od 0 do 2? Można to zrobić, sprawdzając jednocześnie dwa warunki: x >= 0 i x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Do implementacji warunków złożonych w MatLabie wykorzystywane są operatory logiczne:

& - logiczne AND
| - logiczne OR
~ - logiczne NIE

Spójrzmy na przykład użycia warunków złożonych. Niech będzie wymagane sprawdzenie, czy zmienna x znajduje się w przedziale od 0 do 2. Program będzie napisany w następujący sposób:

x = 1;
jeśli x >= 0 & x<= 2
w przeciwnym razie
koniec

W drugim przykładzie sprawdźmy, czy zmienna x nie należy do zakresu od 0 do 2. Osiąga się to poprzez wyzwolenie jednego z dwóch warunków: x< 0 или x > 2:

x = 1;
jeśli x< 0 | x > 2
disp("x nie należy do zakresu od 0 do 2");
w przeciwnym razie
disp("x jest w zakresie od 0 do 2");
koniec

Używając operatorów logicznych AND, OR, NOT, można tworzyć różne warunki złożone. Na przykład możesz sprawdzić, czy zmienna x jest w zakresie od -5 do 5, ale nie w zakresie od 0 do 1. Oczywiście można to zaimplementować w następujący sposób:

x = 1;
jeśli (x >= -5 & x<= 5) & (x < 0 | x > 1)
disp("x należy do [-5, 5], ale nie należy do ");
w przeciwnym razie
disp("x albo nie jest w [-5, 5] albo w ");
koniec

Zauważ, że w złożonym warunku złożonym zastosowano nawiasy. Faktem jest, że priorytet operacji AND jest wyższy niż priorytet operacji OR, a gdyby nie było nawiasów, to warunek wyglądałby tak: (x >= -5 i x<= 5 и x < 0) или x >1. Oczywiście taka kontrola dałaby inny wynik niż oczekiwano.

Nawiasy w programowaniu służą do zmiany kolejności wykonywania instrukcji. Tak jak operatory arytmetyczne, logiczne można również zmienić na życzenie programisty. Dzięki zastosowaniu nawiasów sprawdzanie odbywa się najpierw w ich wnętrzu, a następnie poza nimi. Dlatego w powyższym przykładzie są one niezbędne do osiągnięcia pożądanego rezultatu.

Priorytet operacje logiczne następny:

NOT (~) - najwyższy priorytet;
Oraz (&) - średni priorytet;
LUB (|) to najniższy priorytet.

instrukcja pętli while

Język programowania MatLab ma dwie instrukcje pętli: while i for. Za ich pomocą wykonuje się np. programowanie algorytmów rekurencyjnych, obliczanie sumy szeregu, wyliczanie elementów tablicy i wiele innych.

W najprostszym przypadku pętla w programie jest zorganizowana za pomocą instrukcji while, która ma następującą składnię:

podczas gdy<условие>
<операторы>
koniec

Tutaj<условие>oznacza wyrażenie warunkowe, takie jak użyte w instrukcji if, a pętla while działa, dopóki warunek jest spełniony.

Należy zwrócić uwagę na to, że jeśli warunek jest fałszywy przed rozpoczęciem pętli, to zawarte w pętli instrukcje nie zostaną wykonane ani razu.

Oto przykład pętli while do obliczania sumy serii:


i=1; % licznika całkowitego
podczas gdy ja<= 20 % цикл (работает пока i <= 20)

koniec % koniec pętli
disp(S); % wyświetlanej sumy 210 na ekranie

Teraz skomplikujemy zadanie i obliczymy sumę szeregu , while . Tutaj w instrukcji loop uzyskuje się dwa warunki: albo licznik dla i osiąga 20, albo wartość sumy S przekracza 20. Tę logikę można zaimplementować za pomocą złożonego wyrażenia warunkowego w instrukcji while loop:

S = 0; % wartości początkowej sumy
i=1; % licznika całkowitego
podczas gdy ja<= 20 & S <= 20 % цикл (работает пока i<=10 и S<=20
S=S+i; % zliczonej kwoty
i=i+1; % przyrostu licznika o 1
koniec % koniec pętli

Powyższy przykład pokazuje możliwość zastosowania warunków złożonych w pętli while. Ogólnie rzecz biorąc, jako wyrażenie warunkowe można zapisać te same warunki, co w instrukcji warunkowej if.

Praca dowolnego operatora pętli, w tym while, może zostać wymuszona za pomocą instrukcji break. Na przykład poprzedni program można przepisać w następujący sposób za pomocą instrukcji break:

S = 0; % wartości początkowej sumy
i=1; % licznika całkowitego
podczas gdy ja<= 20 % цикл (работает пока i<=10
S=S+i; % zliczonej kwoty
i=i+1; % przyrostu licznika o 1
jeśli S > 20% jeśli S > 20,
przerwanie; % wtedy pętla się kończy
koniec
koniec % koniec pętli
disp(S); % wyświetla sumę 21 na ekranie

W tym przykładzie drugi warunek zakończenia pętli, gdy S jest większe niż 20, jest zapisany w samej pętli i przy użyciu instrukcji break pętla jest wyprowadzana do funkcji disp() bezpośrednio po pętli while.

Drugi operator kontroli wykonania pętli kontynuuj pozwala pominąć wykonanie fragmentu programu po nim. Na przykład chcesz obliczyć sumę elementów tablicy

a = ;

wykluczając element o indeksie 5. Taki program można zapisać w następujący sposób:

S = 0; % wartości początkowej sumy
a = ; % tablicy
i=0; % liczba indeksów tablicy
podczas gdy ja< length(a) % цикл (работает пока i меньше
% długości tablicy a)
i=i+1; % zwiększa licznik indeksu o 1
jeśli i == 5% jeśli indeks wynosi 5
kontynuować; % to nie obliczamy tego
koniec
S=S+a(i); % suma zliczonych przedmiotów
koniec % koniec pętli
disp(S); % wyświetla sumę 40 na ekranie

Należy zauważyć, że w tym programie indeks tablicy i jest zwiększany przed sprawdzeniem warunku. Odbywa się to tak, że wartość indeksu wzrasta o 1 przy każdej iteracji pętli. Jeśli przyrost licznika i jest zapisany tak jak w poprzednich przykładach, tj. po obliczeniu sumy instrukcja continue spowoduje zatrzymanie jej wartości na 5, a pętla while będzie działać „w nieskończoność”.

instrukcja pętli for

Często przy organizacji pętli wymagane jest iterowanie wartości licznika w zadanym zakresie wartości i z zadanym krokiem zmiany. Na przykład, aby iterować po elementach wektora (tablicy), musisz zorganizować licznik od 1 do N z krokiem 1, gdzie N jest liczbą elementów w wektorze. Aby obliczyć sumę szeregu, określany jest również licznik od a do b z wymaganym krokiem zmiany kroku. I tak dalej. Ze względu na to, że takie zadania są często spotykane w praktyce programistycznej, do ich realizacji zaproponowano osobny operator for loop, co ułatwia i bardziej wizualną implementację pętli z licznikiem.

Składnia instrukcji pętli for jest następująca:

dla<счетчик> = <начальное значение>:<шаг>:<конечное значение>
<операторы цикла>
koniec

Rozważmy pracę tego cyklu na przykładzie implementacji algorytmu znajdowania maksymalnej wartości elementu w wektorze:

a = ;
m = a(1); % aktualna maksymalna wartość
dla i=1:length(a) % pętla od 1 do końca wektora c
% krok 1 (domyślny)
jeśli m< a(i) % если a(i) >m,
m = a(i); % wtedy m = a(i)
koniec
koniec % koniec pętli for
disp(m);

W tym przykładzie pętla for ustawia licznik i i zmienia jego wartość od 1 do 10 w przyrostach o 1. Należy zauważyć, że jeśli przyrost nie jest wyraźnie określony, domyślnie przyjmuje wartość 1.

W poniższym przykładzie rozważmy implementację algorytmu przesuwania elementów wektora w prawo, tj. przedostatni element jest umieszczany w miejsce ostatniego, następny jest umieszczany w miejscu przedostatniego i tak dalej. do pierwszego elementu:

a = ;
disp(a);
dla i=długość(a):-1:2 % pętla od 10 do 2 z krokiem -1
a(i)=a(i-1); % przesunięcie elementów wektora a
koniec % koniec pętli for
disp(a);

Wynik programu

3 6 5 3 6 9 5 3 1 0
3 3 6 5 3 6 9 5 3 1

Powyższy przykład pokazuje, że aby zaimplementować cykl z licznikiem od większej wartości do mniejszej, należy jawnie określić krok, w tym przypadku -1. Jeśli tego nie zrobisz, pętla natychmiast zakończy swoją pracę i program nie będzie działał poprawnie.

Rozwiązania równań

Petersburg: BHV-Petersburg, 2005. - 1104 s.
ISBN 5-94157-494-0
Ściągnij(link bezpośredni) : matlab72005.pdf Poprzedni 1 .. 117 > .. >> Następny

podczas zapętlania warunku polecenia MATLAB

W tym przykładzie warunkiem powtórzenia cyklu jest to, że moduł bieżącego członu wynosi x2k~l/(2k+1)! więcej niż IO10. Aby wpisać warunek w formularzu,

rozumiane przez MATLAB, należy użyć znaku „>” (większe niż). Tekst funkcji plik-mysin, która oblicza sumę szeregu na podstawie relacji rekurencyjnej

k 2k(2k + \) k 1

pokazane w wykazie 7.7.

Uwaga ^

Oczywiście w ogólnym przypadku małość terminu jest pojęciem względnym, termin może być, powiedzmy, rzędu IO-10, ale sama suma jest tego samego rzędu. W takim przypadku warunek zakończenia sumy musi być inny, a mianowicie moduł stosunku bieżącego terminu do już skumulowanej części sumy musi być mały. Na razie nie będziemy zwracać na to uwagi – naszym zadaniem jest badanie pracy z cyklami.

Listing 7.7. Funkcja plikowa mysin, która oblicza sinus przez rozwinięcie szeregu

funkcja s - mysin(x)

"% Obliczanie sinusa przez rozwinięcie szeregu"

% Użycie: y=mysin[x), -pi< х < piГлава 7. Управляющие конструкции языка программирова ни я

Ї obliczenie pierwszego członu sumy dla k \u003d O k \u003d 0; ich;

% obliczenia zmiennej pomocniczej x2 - x*x;

natomiast abs(u) > 1.Oe-IO k = k + 1; u \u003d -u * x2 / (2 * k) / (2 * k + 1)

Zwróć uwagę, że pętla while w przeciwieństwie do for nie ma zmiennej pętli, więc konieczne było przypisanie jednej do pętli przed pętlą i zwiększenie k o jeden wewnątrz pętli.

Teraz porównaj wynik, wykreślając funkcje mysin i sin na przedziale [-l, i] Fia na tych samych osiach, na przykład za pomocą fplot (polecenia można ustawić z wiersza poleceń): „fplot (@rnysin, [- pi, pi])" poczekaj

» fplot(@sin, t-pii pi]і "k.")

Ryż. 7.3. Porównanie mysin i sin360_________ Część II. Obliczenia i programowanie

Otrzymane wykresy pokazano na ryc. 7.3, świadczą o poprawnym działaniu funkcji pliku mysin.

Warunek pętli while może zawierać wyrażenie logiczne złożone z operatorów relacyjnych i operatorów logicznych lub operatorów. Aby ustawić warunek powtórzenia cyklu, należy wykonać operacje relacji podane w tabeli. 7.1.

Tabela 7.1. operacje relacyjne

Notacja Relacja operacji
== Równość
< Меньше
<= Меньше или равно
>= Większe lub równe
Nie równe

Bardziej złożone warunki są określane za pomocą operatorów logicznych lub operacji. Na przykład warunek -1<.г<2 состоит в одновременном выполнении неравенства а>-1 i x<2 и записывается при помощи логического оператора and

i(x >= -1, X< 2)

lub równoważnie za pomocą operacji logicznej "i" - &

(x >= -1) & (x< 2)

Główne operacje logiczne i operatory oraz przykłady ich zapisu podano w tabeli. 7.2 (wyrażenia logiczne są szczegółowo opisane w sekcji „Operacje logiczne na liczbach i tablicach” tego rozdziału).

Tabela 7.2. Wyrażenia logiczne

Typ wyrażenia Wyrażenie Operator logiczny Operacja logiczna
Logiczne „i” A*<3 И к=4 and (х < 3, k==4) (х<3) s (k = 4)
Logiczne „lub” X = Ї lub 2 lub (x == 1, X= 2) (x == 1) I (x == 2)
Negowanie „nie” a * 1,9 nie (a == 1,9) - (a == 1,9)

^ Uwaga ^

Operatory not, i, i lub są funkcjami, które zwracają prawdę (jedynkę logiczną) lub fałsz (logiczne zero). Każde wyrażenie logiczne przyjmuje te same wartości.

Przy obliczaniu sumy szeregu nieskończonego sensowne jest ograniczenie liczby terminów. Jeśli szereg jest rozbieżny, ponieważ jego człony nie dążą do zera, wówczas warunek małości bieżącego członu może nigdy nie zostać spełniony i program zapętli się. Wykonaj sumowanie, ograniczając liczbę terminów. Dodaj limit liczby terminów w warunku pętli while pliku funkcji mysin (patrz Listing 7-6):

(abs(u) > 1.Oe-IO) & (do<= 100000) или в эквивалентной форме:

oraz l.Oe-lO, k<= 100000)

^ Uwaga ^

Aby określić kolejność wykonywania operacji logicznych należy użyć nawiasów (więcej o operatorach logicznych i operacjach logicznych oraz możliwości ich zastosowania do tablic patrz

ust. „Wyrażenia logiczne z tablicami i liczbami” tego rozdziału).

Podczas programowania algorytmów, oprócz organizowania powtarzalnych akcji w postaci cykli, często konieczne jest wykonanie jednego lub drugiego bloku poleceń w zależności od określonych warunków, tj. użyj algorytmu rozgałęziania.

Operatorzy oddziałów

Instrukcja warunkowa if i instrukcja switch umożliwiają utworzenie elastycznego algorytmu rozgałęziania, w którym po spełnieniu określonych warunków wykonywany jest odpowiedni blok instrukcji lub poleceń MATLAB. Prawie wszystkie języki programowania mają podobne operatory.

Warunkowe oświadczenie, jeśli

Instrukcja if może być używana w swojej prostej formie, do wykonania bloku poleceń, gdy spełniony jest jakiś warunek, lub w konstrukcji if-eiseif-eise do pisania algorytmów rozgałęziających.362

Część druga. Obliczenia i programowanie

Walidacja argumentu wejściowego

Zacznijmy od najprostszego przykładu - utwórz plik funkcji do obliczenia

Oprócz programów z struktura liniowa, których instrukcje są wykonywane ściśle po kolei, istnieje wiele algorytmów, których struktura nieliniowy. W tym przypadku sekwencja elementów algorytmów może być wykonywana w zależności od określonych warunków, czasem ze skończoną liczbą powtórzeń - cykli regularnych, czasem w postaci cykli kończących się po spełnieniu danego warunku. Prawie każdy poważny program ma strukturę nieliniową. Do tworzenia takich programów potrzebne są specjalne struktury kontrolne. Są dostępne w dowolnym języku programowania wysokiego poziomu, w szczególności w Matlab.

Rozważ operatorów m-pliki o szczegóły.

operator przypisania. Główny operator systemu programowania Matlab jest operator przypisania, który ma następującą strukturę:

Nazwa zmiennej= wyrażenie

Operator służy do identyfikacji zmiennych i jest oznaczony symbolem = , po lewej stronie znajduje się nazwa zmiennej, a po prawej wyrażenie arytmetyczne lub łańcuchowe (zasady pisania wyrażeń arytmetycznych i łańcuchowych zostały omówione w rozdziale 1.1.2). Oto kilka przykładów operatorów przypisania (rys. 1.3.4-1).

Ryż. 1.3.4-1. Przykłady deklaracji przypisania

Wszystkie zmienne używane po prawej stronie instrukcji przypisania muszą być wstępnie zdefiniowane. Jeśli wiersz poleceń kończy się średnikiem ( ; ), to wynik instrukcji nie jest wyświetlany, w przeciwnym razie jest wyświetlany w następnym wierszu okna poleceń. Uwaga ta dotyczy również wykonywania oświadczeń cesji znajdujących się w: m-akta.

Operatory wprowadzania danych. Wprowadzanie danych w Matlabie można wykonać zarówno za pomocą operatora przypisania ( a=5;) oraz za pomocą funkcji wprowadzania z klawiatury:

Nazwa zmiennej=wejście("Żądanie");

Ta funkcja wprowadza wyrażenie z klawiatury, a wynik jest przechowywany w zmiennej o nazwie a. W poniższym przykładzie do zmiennej a najpierw wprowadzana jest wartość liczbowa, a następnie wyrażenie liczbowe (rys. 1.3.4-2).

Ryż. 1.3.4-3. Ocena wyrażenia podanego w formie symbolicznej

Oświadczenie warunkowe, jeśli... koniec. Operator warunkowy jeśli w ogólna perspektywa jest napisane w następujący sposób:

jeśliWyrażenie logiczne1

Instrukcje1

innelfWarunek 2

Wyrażenie logiczne2

Wyrażenie logiczne3

Zasady pisania wyrażeń logicznych zostały opisane w Temacie 1.1.

Taka konstrukcja pozwala na kilka konkretnych wariantów. Najprostszy - ścięty widły [x] ma następującą postać:

jeśliWyrażenie logiczne

Instrukcje

Przypomnij sobie, jeśli Wyrażenie logiczne zwraca wartość logiczną 1 (tj. „Prawda”) są wykonywane Instrukcje, stanowiący korpus konstrukcji jeśli... koniec. Jednocześnie operator koniec oznacza koniec listy instrukcji. Instrukcje na liście są oddzielone przecinkiem lub średnikiem. Jeśli Wyrażenie logiczne niewykonane (daje wartość logiczną 0 , „Fałsz”), to Instrukcje nie są również wykonywane.

Poniżej przykład użycia najprostszej gałęzi okrojonej, zaimplementowanej przy użyciu operatora jeśli(Rys. 1.3.4-4).

Ryż. 1.3.4-5. Przykład standardowego oddziału

Z powyższego przykładu widać, że operator jeśli Może być w jednej lub kilku liniach.

Rozważ bardziej złożony przykład - zagnieżdżona gałąź. Rozważ przykład

ponadto, aby w pełni oddać strukturę złożonego rozgałęzienia, nie przejmując się przenoszeniem długich linii poleceń, stosujemy m-funkcja (rys. 1.3.4-7). Wybierzmy dane, aby sprawdzić główną gałąź i przejdźmy do funkcji raz() z różnymi danymi początkowymi (rys. 1.3.4-6).

Ryż. 1.3.4-7. Funkcja implementująca zagnieżdżoną gałąź

Operatorem wielokrotnego wyboru jest przełącznik. Aby zaimplementować wielokrotny wybór, stosuje się następującą konstrukcję przełączniki:

przełącznikWyrażenie

walizkaCzytanie_1

List_instructions_1

walizkawartość_2

List_instructions_2

walizkaWartość_N

Instrukcja_Lista_N

Inaczej

Lista_instrukcji_N+1

Jeśli wyrażenie po nagłówku przełącznik ma wartość jednego z wyrażeń Oznaczający..., następnie blok instrukcji jest wykonywany walizka, w przeciwnym razie - lista instrukcji po operatorze Inaczej. Podczas wykonywania bloku walizka te listy instrukcji są wykonywane dla których Oznaczający zbiega się z Wyrażenie. Proszę to zanotować Oznaczający może być liczbą, stałą, zmienną, wektorem komórek, a nawet zmienną łańcuchową. Wyjaśnijmy użycie operatora wyliczenia przełącznik następujący przykład:

M-funkcja realizująca wielokrotne rozgałęzienie jest pokazana na ryc. 1.3.4-8, a dostęp do niego z danymi początkowymi pozwalającymi na sprawdzenie każdej gałęzi gałęzi pokazano na rys. 1.3.4-9.

Ryż. 1.3.4-9. Wywołania funkcji wielofunkcyjny()

Funkcjonować wielofunkcyjny(x,n) dwa parametry, przy czym drugi pełni rolę wskaźnika określającego rodzaj zależności funkcjonalnej. Wartość funkcji jest zapisywana do zmiennej tak. Jeśli n=1, to wykonywany jest pierwszy blok przypadku, jeśli 2, to drugi, jeśli n=2, 3 lub 4, potem trzeci. Jeżeli wartość zmiennej n nie pasuje do żadnej z wymienionych wartości, to wykonywane jest polecenie znajdujące się po słowie kluczowym. Inaczej.

Operator pętli regularnej służy do...end. Wpisz operator pętli na... koniec zwykle używany do organizowania obliczeń z określoną liczbą powtórzeń pętli. Struktura takiego cyklu jest następująca:

dla vag = s:d:e

Instrukcja1

InstrukcjaN

gdzie s- początkowa wartość zmiennej pętli var, d- zwiększyć tę zmienną i e- końcowa wartość zmiennej sterującej, powyżej której kończy się pętla. Możliwe jest również pisanie w formie s:e(w tym przypadku d=l). Lista instrukcji wykonywanych w pętli kończy się instrukcją koniec.

Jako przykład użycia operatora na... koniec obliczyć sumę elementów tablicy X, których wartości są definiowane w oknie poleceń za pomocą funkcji m suma()(Rys. 1.3.4-10), którego parametrem jest wektor x. Liczba elementów tablicy X zdefiniowane przez funkcję długość. Oprócz wywołania funkcji, okno poleceń umożliwia sprawdzenie wyniku obliczeń za pomocą wbudowanej funkcji suma(x)(Rys. 1.3.4-11).

Ryż. 1.3.4-11. Wywołanie funkcji suma() i wbudowana funkcja suma()

Operator może być używany w pętli kontynuować , który przekazuje kontrolę do następnej iteracji pętli, pomijając następujące instrukcje, aw zagnieżdżonej pętli przekazuje kontrolę do następnej iteracji pętli głównej. Operator przerwanie może służyć do wcześniejszego przerwania wykonywania pętli (na przykład podczas debugowania sekcji programu). Gdy tylko wystąpi w programie, pętla zostaje przerwana.

Oprócz prostych, regularnych pętli w Matlab, możliwe jest organizowanie pętle zagnieżdżone. Rozważ przykład tworzenia dwuwymiarowej tablicy a, z których każdy element reprezentuje sumę jego indeksów (rys. 1.3.4-12). Apel do scenariusz-plik vzikl pokazano na ryc. 1.3.4-13.

Ryż. 1.3.4-13. Apel do scenariusz-plik o nazwie vzikl

Iteracyjnym operatorem pętli jest while...end. Ogólny widok konstrukcji dopóki... koniec następująco:

podczas gdyWyrażenie logiczne

Instrukcje

Charakterystyczną cechą tej struktury jest to, że instrukcje znajdujące się w ciele struktury powtórzeń są wykonywane tylko wtedy, gdy niektóre Wyrażenie logiczne"PRAWDA". Gdy tylko warunek staje się „fałszywy”, następuje wyjście ze struktury powtórzeń, a kontrola jest przekazywana do instrukcji znajdującej się po słowie kluczowym koniec.

Podajmy prosty przykład (ryc. 1.3.4-14).


Ryż. 1.3.4-14. Program dialogowy za pomocą operatora dopóki... koniec

Ten program, przechowywany w m-plik o nazwie podkład11, służy do wielokrotnego obliczania obwodu wprowadzonej przez użytkownika wartości promienia r, gdzie okno dialogowe jest zaimplementowane za pomocą polecenia Wejście. Linie związane ze zmiennym wejściem r i obliczenia obwodu są zawarte w strukturze sterowania dopóki... koniec. Jest to konieczne do cyklicznego powtarzania obliczeń przy wprowadzaniu różnych wartości. r. Do widzenia r>=0 cykl się powtarza. Ale warto zapytać r<0 , obliczanie obwodu kończy się i pętla się kończy. Ponieważ w drugim wierszu programu wartość r jest ustawiony na 0, pętla jest powtarzana co najmniej raz.

Praca z programem w oknie poleceń pokazano na ryc. 1.3.4-15.

Ryż. 1.3.4-16. Przerywanie programu za pomocą instrukcji przerwanie

Operator kontynuować przekazuje kontrolę do następnej iteracji pętli, pomijając instrukcje, które następują po niej, a w zagnieżdżonej pętli przekazuje kontrolę do następnej iteracji pętli głównej. Poniżej znajduje się przykład obliczenia sumy i iloczynu dodatnich elementów dwuwymiarowej tablicy b(3,3) (rys. 1.3.4-17).


Ryż. 1.3.4-17. Przerywanie programu za pomocą instrukcji kontynuować

Przykłady rozwiązywania problemów za pomocą

M-pliki

Przykład 1.3.5-1. Biorąc pod uwagę n liczb . Wymagane jest obliczenie ich sumy: gdzie

Aby rozwiązać ten problem, opracowano funkcję fb(x), który implementuje algorytm obliczania bieżącej wartości funkcji. Funkcja posiada jeden parametr wejściowy - bieżącą wartość elementu tablicy b i jeden parametr wyjściowy - tak(Rys. 1.3.5-1). Funkcja jest wywoływana w pętli zorganizowanej w celu obliczenia sumy (rys. 1.3.5-2).

Ryż. 1.3.5-2. Program realizujący obliczanie sumy liczb

Aby obliczyć sumę wartości funkcji utworzonych scenariusz-plik o nazwie zadasza.m, w którym liczba liczb ( n=10) i wektor ich wartości ( b), a następnie zorganizowana jest regularna pętla do wywoływania funkcji pełne wyżywienie() i obliczanie sumy.

Obliczenia wykonywane są przez bieganie scenariusz-plik wpisując w wierszu poleceń okna okno poleceń jego imię zadasza. Wyniki jego realizacji przedstawiono na ryc. 1.3.5-3.


Ryż. 1.3.5-3. początek scenariusz-plik zadasza do egzekucji

Przykład 1.3.5-2. Utwórz dwuwymiarową tablicę a(3,4) z dowolnych liczb. Oblicz i wyprowadź jednowymiarową tablicę b, której każdy element jest średnią arytmetyczną elementów odpowiedniego wiersza tablicy a.

Na ryc. Podano 1.3.5-4 scenariusz-plik o nazwie zadasza2, gdzie wprowadzono matrycę, a, składający się z trzech wierszy i czterech kolumn. Pętla jest zorganizowana według liczby utworzonych elementów tablicy b wywołując funkcję sred_ar(). Tablica jest przekazywana do funkcji a, numer kolejki ( i) i liczbę elementów w ciągu ( m). Wyświetlanie elementów tablicy b podane w kolumnie.

Ryż. 1.3.5-5. Funkcjonować sred_ar(), który oblicza średnią arytmetyczną
elementy ciągu tablicy a

W wyniku uruchomienia scenariusz-plik o nazwie zadasza2 za oknem okno poleceń wyświetlana jest kolumna elementów tablicy b

Ryż. 1.3.5-7. Funkcjonować fabuła(), obliczanie wartości i-tego członu

Ryż. 1.3.5-9. Uruchomienie funkcji suma() do egzekucji


Prace laboratoryjne nad tematem

„Sposoby algorytmizacji i programowania

W Matlabie"

Zagadnienia do zbadania

1) Widoki m- akta.

2) Tworzenie i zapisywanie nowych oraz otwieranie wcześniej utworzonych m-plików.

3) Funkcje scenariusz- pliki i m- Funkcje.

4) Biegnij do egzekucji scenariusz- plik z edytora tekstu.

5) Biegnij do egzekucji scenariusz- plik z okna poleceń.

6) Wzywa do scenariusz- pliki i m-f Funkcje.

7) Narzędzia języka programowania w systemie Matlab.

8) Podstawowe operatory m-językowe, ich przeznaczenie i formaty .

2. Zadanie ogólne

1) Przeglądaj tematy 1.3 (p.p. 1.3.1 – 1.3.5).

2) Wybierz indywidualne zadanie z tabeli. 1.3.6-1.

3) Projekt m -funkcje do implementacji standardowych algorytmów: obliczanie sum skończonych, rozgałęzienia, znajdowanie minimum i maksimum w sekwencji danych itp.

4) Wchodzić oraz ratować m -funkcje na nośnikach zewnętrznych.

5) Tworzyć Nowyscenariusz -plik, w którym wpisujesz kod programu opisujący logikę rozwiązywania zadania.

6) Zapisz skrypt -plik w bieżącym katalogu.

7) Debuguj skrypt t-file, uruchamiając go z edytora tekstu za pomocą poleceniaBiegać .

8) Przygotować oraz wejść wstępne dane do rozwiązania problemu;

9) Wykonaj skrypt -plik z wiersza poleceń oknaokno poleceń .

10) Zapisz tekst okno robocze na nośnikach zewnętrznych.

11) Prześlij swoje wyniki praca nauczyciela, odpowiadać na zadane pytania.

12) Kompletny Komenda Wyczyść wszystko do czyszczenia środowisko pracy .

13) Prześlij raport zgodnie z wykonaną pracą .


Warianty poszczególnych zadań

Tabela 1.3.6-1

Ćwiczenie
Wpisz liczbę naturalną n i wektor liczb rzeczywistych Odnaleźć: gdzie
Oblicz gdzie

Ustaw tablicę , składający się z parzystej liczby elementów. Każda para liczb , gdzie i+1 jest wielokrotnością dwóch, określa współrzędne wierzchołka polilinii. Skonstruuj polilinię, łącząc ostatni wierzchołek z pierwszym
. Oblicz produkt , gdzie
Wpisz liczbę naturalną n i liczbę rzeczywistą x. Oblicz
Wpisz liczbę naturalną n. Znajdź największe wśród wartości , gdzie k=1, 2,…,n, a także suma wszystkich otrzymanych wartości
Wpisz liczbę naturalną n. Wśród znaczeń , gdzie
(i=1,2,…n), znajdź wszystkie pozytywy i oblicz ich sumę
Podaj liczbę naturalną n i wektor liczb rzeczywistych . Określ, czy w wektorze jest więcej liczb dodatnich, czy ujemnych i określ największą z ujemnych i najmniejszą z dodatnich liczb
Wprowadź macierz B(5,7) i utwórz wektor C(5) z pierwszych największych elementów wierszy. Wyświetlaj jego elementy w rzędzie i kolumnie
Utwórz wektor zgodnie z zasadą: , gdzie k=2,3,…, 7, jeśli Znajdź sumę kwadratów tych liczb, które nie przekraczają 2
Podaj liczbę naturalną n i wektor liczb rzeczywistych . Znajdź liczbę dwóch sąsiednich liczb dodatnich i dwóch sąsiednich liczb o różnym znaku
Wprowadź macierz kwadratową A(4,4). Utwórz wektor X z maksymalnych elementów jego kolumn, wyświetl jego elementy na ekranie w kolejności bezpośredniej i odwrotnej
Wprowadź wektor liczb całkowitych . Przekształć go w taki sposób, aby najpierw były zera, a potem wszystkie inne elementy. Określ sumę i liczbę elementów, których wartości są wielokrotnością 5
Wprowadź wektor liczb rzeczywistych . Utwórz z niego tablicę x, której każdy element jest maksymalnie trzema kolejnymi elementami w tablicy z
Utwórz macierz A(4,4) według zasady:
Znajdź i wyświetl wartości i indeksy dwóch identycznych elementów. Jeśli ich nie ma, wyświetl komunikat
Utwórz macierz D(3,2) zgodnie z zasadą: . Utwórz wektor z ujemnych elementów wynikowej macierzy
Podaj liczbę naturalną n. Oblicz, która z macierzy n na n zawiera więcej elementów dodatnich, jeśli ich elementy są uformowane zgodnie z zasadą: Wyświetl wygenerowane macierze
Wprowadź kwadratową macierz liczb rzeczywistych A(4,4). Znajdź sumę największych wartości elementów jego wierszy. Utwórz nową macierz B(4,4) mnożąc każdy element macierzy A przez znalezioną sumę i dzieląc ją przez wyznacznik macierzy pierwotnej
Wprowadź macierz liczb rzeczywistych A(4,7) i uzyskaj z niej wektor C(4), którego elementami są: · największy z elementów pierwszego rzędu; najmniejszy z elementów w drugim rzędzie; średnia arytmetyczna elementów trzeciego rzędu; suma elementów czwartego rzędu
Wprowadź liczbę naturalną n i macierz liczb rzeczywistych С(n,n). Znajdź średnią arytmetyczną największych i najmniejszych wartości jej elementów i zastępując elementy przekątne tą wartością, wyświetl macierz C na ekranie
Wpisz liczby naturalne k1, k2 i rzeczywistą macierz 8x4. Zamień elementy wierszy k1 i k2 w macierzy
Podaj liczbę naturalną n i macierz liczb rzeczywistych С(n,9). Znajdź średnią arytmetyczną każdej z kolumn, które mają liczby parzyste
Wprowadź wektory liczb rzeczywistych x(5), y(6), z(7). Oblicz wartość t zgodnie z następującym algorytmem:
Wprowadź wektory liczb rzeczywistych x(5). Pobierz dla wartości x=1, 3, 4 gdzie
Wprowadź wektory liczb rzeczywistych x(10). Pobierz z niej kolejną tablicę p(10), której elementy są posortowane w kolejności rosnącej
Wprowadź macierz liczb rzeczywistych A(3,4). Zastąp elementy wiersza macierzy maksymalną sumą wartości elementów - jednorazowo, minimalną - dwójkami, a pozostałe elementy macierzy ustaw na zero
Utwórz macierz A(4,4) zgodnie z zasadą Usuń z niej kolumny zawierające elementy mniejsze niż 10
Utwórz macierz B(9,3) zgodnie z regułą Wyznacz najmniejszy element w każdym wierszu macierzy i zapisz go do odpowiedniego elementu wektora C. Wyprowadź wynikowy wektor C
Wprowadź macierz liczb rzeczywistych A(3,4), której wszystkie elementy są różne. W każdym wierszu należy wybrać największą i najmniejszą wartość oraz wpisać sumę indeksów kolumn, w których się znajdują, w odpowiednim elemencie wektora С(3)
Wprowadź macierz liczb rzeczywistych A(4,4). Pobierz ciągi elementów głównej i drugorzędnej przekątnej, utwórz z tych elementów wektory B(4) i C(4) i wyświetl je na ekranie

1) W formie komentarzy:

Nazwa laboratorium

Imię i nazwisko ucznia, numer grupy

Numer opcji

・Indywidualne zadanie

2) Protokół obliczeń (sesji) w oknie okno poleceń z niezbędnymi komentarzami.

1.3.7. Pytania bezpieczeństwa na ten temat

1) Co to jest? scenariusz- plik i jakie są jego cechy?

2) Jak? scenariusz- plik jest wykonywany?

3) Co to jest? m- Funkcje I?

4) Jaka jest różnica? scenariusz- plik z m- Funkcje?

5) Czy m- funkcjonować mieć wiele parametrów wyjściowych?

6) Zadzwoń do m- Funkcje.

7) Format operatora Wejście().

8) Jak korzystać z operatora jeśli... koniec wdrożyć rozgałęzienia standardowe, okrojone i zagnieżdżone?

9) Format operatora wielu oddziałów przełącznik.

10) Format operatora pętli regularnej na... koniec, cechy ustawiania wartości zmiennej pętli.

11) Powołanie operatorów kontynuować oraz przerwanie.

12) Operator pętli iteracyjnej dopóki... koniec i jego struktura.


Sekcja 2. Technologia rozwiązania
zadania obliczeniowe z wykorzystaniem MatLab

Pętle w Matlabie wymagają warunku, który musi spełniać polecenie lub grupa poleceń
powtórz kilka razy.

Najłatwiejszym sposobem utworzenia pętli jest użycie
do ekspresji. Poniżej znajduje się prosty przykład, w którym oblicza się i wyświetla 10! = 10 * 9 * 8 ... * 2 * 1.

f = 1;
dla n=2:10
f = f*n;
koniec

f=
3628800

Pętla w programie Matlab zaczyna się od instrukcji for i kończy na instrukcji end. Zespół
między tymi wyrażeniami jest wykonywany w sumie dziewięć razy, po jednym dla każdego
wartości n od 2 do 10. Aby przerwać wyjście pośrednie wewnątrz pętli, mamy
użył średnika. Aby zobaczyć efekt końcowy, potrzebujesz
wpisz f po zakończeniu pętli. Jeśli nie użyjesz średnika, program
MATLAB wyświetli każdą wartość pośrednią 2!, 3! itd.

W module Edytor polecenia for i end są automatycznie podświetlane
w niebieskim. Daje to lepszą czytelność, jeśli wklejasz między
im polecenia (jak to zrobiliśmy); robi to moduł Editor
automatycznie. Jeśli wpiszesz w oknie poleceń,
MATLAB nie wyda nowego wiersza poleceń >>, dopóki nie
wpisz polecenie end, co spowoduje, że program MATLAB wykona pełną pętlę i
wyświetli nową linię poleceń.

  • Jeśli użyjesz pętli w skrypcie M-file z efektem echa na wyświetlaczu, polecenia będą powtarzane za każdym razem w pętli. Możesz temu zapobiec, wstawiając polecenie echo off tuż przed instrukcją end i polecenie echo on tuż po niej; wtedy każde polecenie w pętli zostanie odzwierciedlone raz (z wyjątkiem end).

Uwaga: w programie Matlab są trzy rodzaje pętli, które są podane poniżej

1. Pętla for w Matlabie

a=0;
dla i=1:10
a=a+1;
koniec

2. Pętla while w Matlabie

a=0;
podczas<10
a=a+1;
koniec

3. Pętla if w Matlabie

a=10;
jeśli a==10
„pierwszy przypadek”
w przeciwnym razie
„drugi przypadek”
koniec

ans =
pierwszy przypadek

Dlatego z powyższego możemy wywnioskować, że musisz przyjrzeć się wielu dodatkowym informacjom i alternatywom!


Dział: Technologie informacyjne

PROGRAMOWANIE WMATLAB


OperatorzyMATLAB

· Instrukcje pętli

Cykldla

Składnia

liczba=start:krok:końcowy

Polecenia MATLAB

Opis

liczba jest zmienną pętli,

start to jego wartość początkowa,

final jest jego ostateczną wartością,

step - krok, o który zwiększana jest liczba przy każdym wejściu w pętlę

pętla kończy się, gdy tylko wartość count staje się większa niż końcowa.

Przykład

Niech będzie wymagane wyprowadzenie rodziny krzywych dla x€ , która jest określona przez funkcję zależną od parametru

y (x, a) \u003d e-ax sin x,

dla wartości parametrów a od -0,1 do 0,1. Poniżej znajduje się lista programu plikowego do wyprowadzania rodziny krzywych.

Lista programów

x = ;

dla a = -0,1:0,02:0,1

y = exp(-a*x).*sin(x);

W wyniku wykonania programu pojawi się okno graficzne zawierające wymaganą rodzinę krzywych.

Cyklpodczas gdy

Składnia

podczas gdy warunek pętli

Polecenia MATLAB

Opis

Pętla działa tak długo, jak (prawda) warunek pętli jest spełniony. Następujące operacje relacyjne mogą ustawić warunek wykonania cyklu:

Bardziej złożone warunki są określane za pomocą operatorów logicznych. Operatory logiczne podano w poniższej tabeli


Przykład

Operatorzy oddziałów

Operator warunkowyjeśli

Składnia

jeśli warunek

Polecenia MATLAB

Opis

Jeżeli warunek jest spełniony, to wykonywane są komendy MATLAB umieszczone pomiędzy if i end, a jeżeli warunek nie jest spełniony, to następuje przejście do komend znajdujących się po end.

Przykład

Operator warunkowyelseif

Składnia

jeśli warunek1

warunek elseif 2

………………………

warunek elseif

Opis

W zależności od spełnienia jednego lub drugiego warunku działa odpowiednia gałąź programu, jeżeli wszystkie warunki są niepoprawne, wykonywane są polecenia umieszczone po else.

Przykład

Operatorprzełącznik

Składnia

zmienna przełącznika

wartość przypadku1

wartość przypadku2

……………………

casevaluen


Każda gałąź definiowana jest instrukcją case, przejście do niej następuje w momencie, gdy zmienna instrukcji switch przyjmuje wartość określoną po case, lub jedną z wartości z listy case. Po wykonaniu którejkolwiek z gałęzi przełącznik wychodzi, natomiast wartości podane w innych przypadkach nie są już sprawdzane. Jeżeli nie ma odpowiednich wartości dla zmiennej, to wykonywana jest gałąź programu odpowiadająca inaczej.

Przykład

Przerwania pętli. Wyjątkowe sytuacje.

Operatorprzerwanie

Składnia

Instrukcja break służy do organizowania cyklicznych obliczeń: for...end, while...end. Kiedy stan

jeśli warunek

Instrukcja break kończy pętlę (for lub while) i wykonywane są instrukcje znajdujące się w wierszach następujących po końcu. W przypadku pętli zagnieżdżonych funkcja break wychodzi z pętli wewnętrznej.

Obsługa wyjątków, operatorpróbowaćzłapać

Składnia

oświadczenia, których wykonanie

może spowodować błąd

oświadczenia do wykonania

gdy w bloku wystąpi błąd

między próbą a łapaniem

Opis

Konstrukcja try...catch pozwala ominąć wyjątkowe sytuacje (błędy, które prowadzą do zakończenia programu, na przykład dostęp do nieistniejącego pliku) i podjąć pewne działania, jeśli wystąpią.

Przykład

Funkcje serwisowe

disp wyświetla tekst lub wartość zmiennej w oknie poleceń

Wejście- żąda wprowadzenia danych z klawiatury. Używane podczas tworzenia aplikacji z interfejsem wiersza poleceń.

oceniać wykonuje zawartość ciągu lub zmiennej ciągu, jak polecenia MATLAB

jasne- Usuwa zmienne środowiska pracy.

Zlc- czyści okno poleceń

Aby uzyskać więcej informacji o tych i innych funkcjach, uruchom w wierszu poleceń

Wsparcienazwa_funkcji

Zadania do prac laboratoryjnych

O numerze danego wariantu zadania decyduje prowadzący.

Zadanie numer 1

Zadanie to implikuje znalezienie wielomianu interpolacji algebraicznej stopnia n dla pewnego zbioru danych: P n(x) .

Cel:

Niezbędne jest napisanie programu do obliczania współczynników wielomianu interpolacji algebraicznej P n(x)= a 0 + a 1 x+ … + n x n.

Instrukcje metodyczne:

Niech na przykład mamy następujący zestaw danych:

i 0 1 2 3
Xi 1,2 1,4 1,6 1,8
ja ja 8,3893 8,6251 8,9286 8,9703

Szanse a 0 , a 1 , …, jakiś są wyznaczane z rozwiązania układu równań:

Tutaj njest rządem wielomianu interpolacji,

n+1 to liczba podanych par punktów ( x, tak),

a 0 , a 1 ,… jakiś są wymaganymi współczynnikami wielomianu P n(x)= a 0 + a 1 x+ … + n x n).

Wymagania programowe

Ustaw granice linii , na którym budowany jest wielomian interpolacyjny P(x)

· Zapytać się n to liczba segmentów interpolacji (lub równoważnie stopień wielomianu)

Notatka: x0, xn, n wprowadzone z klawiatury.

· Aby uzyskać dane początkowe (x, y)(liczba par punktów (x ja, y ja), na którym budowany jest wielomian interpolacyjny P(x)n1=n+1) dostarczać:

Wchodzenie do losowo ułożonych węzłów x i, i=0, n z klawiatury

Obliczanie węzłów x i , i=0, n, odpowiadające jednolitemu układowi argumentacji x na segmencie

W s. 1.2 wartości y i , i=0, n albo wprowadzane z klawiatury (jeśli oryginalna funkcja jest nieznana), albo obliczane z danej funkcji f(x). Wyrażenie definiujące funkcję jest wprowadzane z klawiatury i musi być zgodne z zasadami pisania wyrażeń w MATLAB

Wprowadzanie danych ( x ja, y ja, i=0, n) z pliku

Rozwiąż układ równań, aby określić współczynniki wielomianu P(x)

Zbuduj wykresy oryginalnej funkcji tabelarycznej i wielomianu P(x)

· Jeśli dane początkowe są podane jako funkcja f(x), wykreśl błąd interpolacji /f(x) – P(x)/. Oblicz maksymalną wartość modulo błędu interpolacji w danym przedziale.

Podczas wykonywania ostatniej pozycji w segmencie weź co najmniej 500 punktów do obliczeń

Zadanie numer 2

Interpolacja splajnu

Cel:

Niezbędne jest stworzenie programu do obliczania współczynników i konstruowania funkcji sklejanej S(x), „sklejonej” z kawałków wielomianów III rzędu S i(x), które mają specjalną notację:

,

Funkcja S i(x) zdefiniowany na segmencie

Wymagania programowe

Wykonując tę ​​pracę, musisz:

Ustaw granice odcinka, na którym zbudowana jest funkcja splajnu S(x)

· Podaj n – liczbę segmentów interpolacyjnych, na każdym z których budowany jest wielomian sześcienny Si(x).

· Uwaga: x0, xn, n są wprowadzane z klawiatury.

Uporządkuj wprowadzanie danych początkowych (x, y) (liczba par punktów (xi, yi), na których zbudowana jest funkcja sklejana S(x), n1=n+1), zapewniając:

Wprowadzanie dowolnych węzłów xi, i=0, n z klawiatury

Obliczanie węzłów xi, i=0, n, odpowiadających równomiernemu rozmieszczeniu argumentu x na segmencie

W s. 1,2 wartości yi, i=0, n są albo wprowadzane z klawiatury (jeśli pierwotna funkcja jest nieznana) albo obliczane z danej funkcji f(x). Wyrażenie definiujące funkcję jest wprowadzane z klawiatury i musi być zgodne z zasadami pisania wyrażeń w MATLAB

Wprowadzanie danych (xi, yi, i=0, n) z pliku

S1""(x0)=0, S3""(x3)=0

S1"(x0)=f"(x0), S3"(x3)=f"(x3)

S1""(x0)=f "(x0), S3""(x0)=f "(x3)

Aby wyznaczyć współczynniki naturalnego splajnu sześciennego (warunki brzegowe 1), należy rozwiązać następujący układ równań:

Współczynniki σ 0 =0, σ n =0

· Wykresy oryginalnej funkcji i funkcji sklejanych dla wszystkich trzech typów warunków brzegowych.

· Skonstruuj wykresy funkcji błędu interpolacji splajnu f(x) – S(x) dla wszystkich trzech typów warunków brzegowych.

Notatka:

W pakiecie MATLAB indeksy tablic jednowymiarowych i dwuwymiarowych zaczynają się od 1, a nie od 0. Weź to pod uwagę podczas pisania programu.