operator petlje dok primjeri u matlabu. MATLAB for petlja - Ilustrirani MatLab tutorial > Osnove programiranja > For...end petlje. Petlje poput while...end. Zahtjevi za projektiranje laboratorijskih radova

Odjel: Informacijske tehnologije

PROGRAMIRANJE UMATLAB


OperateriMATLAB

· Izjave petlje

Ciklusza

Sintaksa

count=start:step:final

MATLAB naredbe

Opis

count je varijabla petlje,

početak je njegova početna vrijednost,

final je njegova konačna vrijednost,

korak - korak za koji se broj povećava svaki put kada uđe u petlju

petlja završava čim vrijednost count postane veća od konačne.

Primjer

Neka je potrebno izvesti obitelj krivulja za x€ , koja je dana funkcijom ovisno o parametru

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

za vrijednosti parametara a od -0,1 do 0,1. Ispod je popis datotečnog programa za ispis obitelji krivulja.

Popis programa

x = ;

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

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

Kao rezultat izvođenja programa, pojavit će se grafički prozor koji sadrži potrebnu obitelj krivulja.

Ciklusdok

Sintaksa

uvjet petlje while

MATLAB naredbe

Opis

Petlja traje sve dok je (true) uvjet petlje istinit. Sljedeće relacijske operacije dopuštene su za postavljanje uvjeta za izvođenje ciklusa:

Složeniji uvjeti specificiraju se pomoću logičkih operatora. Logički operatori su dati u sljedećoj tablici


Primjer

Operateri podružnica

Uvjetni operatorako

Sintaksa

ako stanje

MATLAB naredbe

Opis

Ako je uvjet istinit, tada se izvršavaju MATLAB naredbe smještene između if i end, a ako uvjet nije istinit, tada dolazi do prijelaza na naredbe koje se nalaze nakon kraja.

Primjer

Uvjetni operatorinače

Sintaksa

ako je uvjet 1

elseif uvjet2

………………………

elseif uvjet

Opis

Ovisno o ispunjenju jednog ili drugog uvjeta, odgovarajuća grana programa radi, ako su svi uvjeti lažni, tada se izvršavaju naredbe postavljene nakon drugog.

Primjer

Operatersklopka

Sintaksa

preklopna varijabla

vrijednost slučaja 1

vrijednost slučaja2

……………………

case valuen


Svaka grana je definirana naredbom case, prijelaz na nju se izvodi kada varijabla naredbe switch uzme vrijednost navedenu iza slučaja ili jednu od vrijednosti s popisa slučajeva. Nakon izvršenja bilo koje grane, prekidač izlazi, dok se vrijednosti navedene u drugim slučajevima više ne provjeravaju. Ako nema odgovarajućih vrijednosti za varijablu, tada se izvršava grana programa koja odgovara drugačijem.

Primjer

Petlja se prekida. Iznimne situacije.

Operaterpauza

Sintaksa

Naredba break se koristi za organiziranje cikličkih izračuna: for...end, while...end. Kada je stanje

ako stanje

naredba break završava petlju (for ili while) i izvršavaju se izrazi koji se nalaze u redovima nakon kraja. Za ugniježđene petlje, break izlazi iz unutarnje petlje.

Rukovanje iznimkama, operaterprobatiulov

Sintaksa

izjave čije izvršenje

može rezultirati pogreškom

izjave koje treba izvršiti

kada dođe do greške u bloku

između pokušaja i hvatanja

Opis

Konstrukt try...catch omogućuje vam da zaobiđete iznimne situacije (pogreške koje dovode do prekida programa, na primjer, pristup nepostojećoj datoteci) i poduzmete neke radnje ako se dogode.

Primjer

Servisne funkcije

disp prikazuje tekst ili vrijednost varijable u naredbenom prozoru

ulazni- zahtijeva unos s tipkovnice. Koristi se pri izradi aplikacija sa sučeljem naredbenog retka.

eval izvršava sadržaj niza ili varijable niza, poput MATLAB naredbi

čisto- Uklanja varijable radnog okruženja.

izlc- briše naredbeni prozor

Za više informacija o ovim i drugim funkcijama, pokrenite na naredbenom retku

Pomozitenaziv_funkcije


Zadaci za laboratorijske radove

Broj određene opcije zadatka određuje učitelj.

Zadatak broj 1

Ovaj zadatak podrazumijeva pronalaženje algebarskog interpolacijskog polinoma stupnja n za neki skup podataka: P n(x) .

Cilj:

Potrebno je napisati program za izračun koeficijenata algebarskog interpolacijskog polinoma P n(x)= a 0 + a 1 x+ … + a n x n.

Metodičke upute:

0 1 2 3

xi

1,2 1,4 1,6 1,8
8,3893 8,6251 8,9286 8,9703

Izgledi a 0 , a 1 , …, a n određuju se iz rješenja sustava jednadžbi:

Ovdje nje red interpolacijskog polinoma,

n+1 je broj zadanih parova točaka ( x, y),

a 0 , a 1 ,… a n su traženi koeficijenti polinoma P n(x)= a 0 + a 1 x+ … + a n x n).

Programski zahtjevi

Postavite granice linija , na kojem se gradi interpolacijski polinom P(x)

· Pitajte n je broj interpolacijskih segmenata (ili, ekvivalentno, stupanj polinoma)

Bilješka: x0, xn, n uneseno s tipkovnice.

· Za dobivanje početnih podataka (x, y)(broj parova bodova (x i, y i), na kojem je konstruiran interpolacijski polinom P(x)n1=n+1) pružiti:

ü Unesite nasumično postavljene čvorove x i, i=0, n s tipkovnice

ü Proračun čvorova x i , i=0, n,što odgovara jednoličnom rasporedu argumenta x na segmentu

ü U paragrafima. 1.2 vrijednosti y i , i=0, n bilo uneseno s tipkovnice (ako je izvorna funkcija nepoznata) ili izračunato iz zadane funkcije f(x). Izraz koji definira funkciju unosi se s tipkovnice i mora slijediti pravila za pisanje izraza u MATLAB-u

ü unos podataka ( x i, y i, i=0, n) iz datoteke

Riješite sustav jednadžbi za određivanje koeficijenata polinoma P(x)

Izgradite grafove izvorne tablične funkcije i polinoma P(x)

· Ako su početni podaci dati kao funkcija f(x), nacrtajte interpolacijsku pogrešku /f(x) – P(x)/. Izračunajte maksimalnu modulo vrijednost interpolacijske pogreške na danom intervalu.


Zadatak broj 2

Spline interpolacija

Cilj:

Potrebno je izraditi program za izračun koeficijenata i konstruiranje splajn funkcije S(x), “slijepljene” iz dijelova polinoma 3. reda S i(x), koji imaju posebnu oznaku:

S funkcija i(x) definirana na segmentu

Programski zahtjevi

Prilikom obavljanja ovog posla morate:

Postavite granice segmenta na kojem se gradi spline funkcija S(x).

· Navedite n – broj interpolacijskih segmenata na kojima se konstruira kubni polinom Si(x).

· Napomena: x0, xn, n se unose s tipkovnice.

Organizirati unos početnih podataka (x, y) (broj parova točaka (xi, yi), na kojima je izgrađena splajn funkcija S(x), n1=n+1), osiguravajući:

ü Unos proizvoljno lociranih čvorova xi, i=0, n s tipkovnice

ü Izračunavanje čvorova xi, i=0, n, koji odgovaraju uniformnom rasporedu argumenta x na segmentu

ü U paragrafima. 1,2 vrijednosti yi, i=0, n se ili unose s tipkovnice (ako je izvorna funkcija nepoznata) ili se izračunavaju iz zadane funkcije f(x). Izraz koji definira funkciju unosi se s tipkovnice i mora slijediti pravila za pisanje izraza u MATLAB-u

ü Unos podataka (xi, yi, i=0, n) iz datoteke

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

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

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

Za određivanje koeficijenata prirodnog kubičnog splajna (granični uvjeti 1) potrebno je riješiti sljedeći sustav jednadžbi:

Koeficijenti σ 0 =0, σ n =0

· Nacrtajte grafove izvorne funkcije i spline funkcije za sve tri vrste graničnih uvjeta.

· Konstruirajte grafove funkcija pogreške interpolacijske interpolacije f(x) – S(x) za sve tri vrste rubnih uvjeta.

Bilješka:

U MATLAB paketu indeksi jednodimenzionalnih i dvodimenzionalnih nizova počinju od 1, a ne od 0. Uzmite to u obzir pri pisanju programa.


Zadatak broj 3

Aproksimacija funkcije metodom najmanjih kvadrata (LSM).

Ovaj zadatak podrazumijeva pronalaženje aproksimirajuće funkcije (polinoma stupnja m) za neki skup podataka, konstruiran metodom najmanjih kvadrata (LSM).

Cilj:

Potrebno je napisati program za pronalaženje koeficijenata polinoma φ (x)= a 0 + a 1 * x+… a n * x m metodom najmanjih kvadrata.

Neka, na primjer, imamo sljedeći skup podataka:

xi

1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0
8,3893 8,6251 8,9286 8,9703 9,1731 9,1784 8,8424 8,7145 8,3077 7,9611

Traženje traženih koeficijenata provodi se na sljedeći način:

gdje n - iznos bodova ( x, y),

m je stupanj željenog polinoma,

a 0 , a 1 , …, a m su željeni koeficijenti ( φ ( x )= a 0 + a 1 x + … + a m x m ).

Programski zahtjevi

Prilikom obavljanja ovog posla morate:

Postavite granice segmenta na kojem se gradi aproksimirajuća funkcija φ(x)=a0+a1*x+… an * xm

Skup m - stupanj polinoma

· Napomena: x1, xn, m se unose s tipkovnice.

Za dobivanje početnih podataka (x, y), na kojima se gradi aproksimirajuća funkcija φ(x)=a0+a1*x+… an* x m, osigurajte:

ü Unos proizvoljnih čvorova xi, i=1, n s tipkovnice

ü Izračun čvorova xi, i=1, n, koji odgovaraju uniformnom rasporedu argumenta x na segmentu

ü U paragrafima. 1,2 vrijednosti yi, i=1, n se ili unose s tipkovnice (ako je izvorna funkcija nepoznata) ili se izračunavaju iz zadane funkcije f(x). Izraz koji definira funkciju unosi se s tipkovnice i mora slijediti pravila za pisanje izraza u MATLAB-u

ü Unos podataka (xi, yi, i=1, n) iz datoteke

Riješite sustav jednadžbi za određivanje koeficijenata polinoma φ(x)

Izgradite grafove izvorne tablične zadane funkcije i polinoma φ(x)

· Ako su početni podaci dati kao funkcija f(x), nacrtajte interpolacijsku pogrešku /f(x) – φ(x)/. Izračunajte maksimalnu modulo vrijednost interpolacijske pogreške na danom intervalu.

Prilikom izvođenja posljednje stavke na segmentu uzeti najmanje 500 bodova za izračune


Zahtjevi za projektiranje laboratorijskih radova

Izvješće mora sadržavati:

1. Iskaz problema

2. Tekst programa

3. Rezultati ispitivanja

Napomena Tekstovi programa trebaju biti opremljeni komentarima.


1. Anufriev I.E. Matlab 5.3 / 6.x tutorial - Sankt Peterburg: BHV-Petersburg, 2003. - 736 str.: ilustr.

2. V.P. Dyakonov MATLAB 6.5 SPI/7 + Simulink 5/6 u matematici i modeliranju. Serija "Stručna biblioteka". - M.: SOLON-Press, 2005. - 576 str.: ilustr.

3. Anufriev I.E., Smirnov A.B., Smirnova E.N. MathLab 7. - Sankt Peterburg: BHV-Petersburg, 2005. - 1104 str.: ilustr.

Jezik tehničkog računarstva

Milijuni inženjera i znanstvenika diljem svijeta koriste MATLAB ® za analizu i razvoj sustava i proizvoda koji transformiraju naš svijet. MATLAB matrični jezik je najprirodniji način izražavanja računalne matematike na svijetu. Ugrađena grafika olakšava vizualizaciju i razumijevanje podataka. Desktop okruženje potiče eksperimentiranje, istraživanje i otkrivanje. Svi ovi MATLAB alati i mogućnosti su rigorozno testirani i dizajnirani za zajednički rad.

MATLAB vam pomaže da svoje ideje oživite izvan desktopa. Možete pokrenuti istraživanja na velikim skupovima podataka i skalirati u klastere i oblake. MATLAB kod se može integrirati s drugim jezicima, omogućujući vam da implementirate algoritame i aplikacije u web, poslovne i industrijske sustave.

Početak rada

Naučite osnove MATLAB-a

Osnove jezika

Sintaksa, indeksiranje i obrada niza, tipovi podataka, operatori

Uvezite i analizirajte podatke

Uvoz i izvoz podataka, uključujući velike datoteke; predobradu podataka, vizualizaciju i istraživanje

Matematika

Linearna algebra, diferencijacija i integracija, Fourierove transformacije i druga matematika

Grafika

2D i 3D grafika, slike, animacija

Programiranje

Skripte, funkcije i klase

Izrada aplikacije

Razvoj aplikacija s App Designerom, Programabilnim tijekom rada ili GUIDE-om

Alati za razvoj softvera

Otklanjanje pogrešaka i testiranje, organizacija velikih projekata, integracija sa sustavom kontrole verzija, pakiranje alata

Često, prilikom organiziranja petlje, potrebno je iterirati preko vrijednosti brojača u zadanom rasponu vrijednosti i s zadanim korakom promjene. Na primjer, da biste iterirali elemente vektora (niza), trebate organizirati brojač od 1 do N s korakom od 1, gdje je N broj elemenata vektora. Za izračunavanje zbroja niza, također je naveden brojač od a do b s potrebnim korakom promjene koraka. itd. Zbog činjenice da se takvi zadaci često susreću u programskoj praksi, za njihovu implementaciju predložen je poseban operator for petlje, koji olakšava i vizualnije implementaciju petlje s brojačem.

Sintaksa izraza petlje for je sljedeća:

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

Razmotrimo rad ovog ciklusa na primjeru implementacije algoritma za pronalaženje maksimalne vrijednosti elementa u vektoru:

funkcija search_max
a = ;
m = a(1); % trenutna maksimalna vrijednost
za i=1:dužina(a) % petlja od 1 do kraja vektora c
% korak 1 (zadano)
ako m< a(i) % если a(i) >m,
m = a(i); % tada je m = a(i)
kraj
end % end of for petlje
disp(m);

U ovom primjeru, for petlja postavlja brojač i i mijenja njegovu vrijednost s 1 na 10 u koracima od 1. Imajte na umu da ako inkrement nije eksplicitno naveden, tada je zadana vrijednost 1.

U sljedećem primjeru razmotrite implementaciju algoritma za pomicanje vektorskih elemenata udesno, t.j. pretposljednji element stavlja se na mjesto posljednjeg, sljedeći se stavlja na mjesto pretposljednjeg i tako dalje. na prvi element:

red funkcija
a = ;
disp(a);
za i=dužina(a):-1:2 % petlja od 10 do 2 s korakom -1
a(i)=a(i-1); % elemenata pomaka vektora a
end % end of for petlje
disp(a);

Rezultat programa

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

Gornji primjer pokazuje da za implementaciju ciklusa s brojačem s veće vrijednosti na manju morate eksplicitno navesti korak, u ovom slučaju, -1. Ako se to ne učini, petlja će odmah prekinuti svoj rad i program neće raditi ispravno.

Zaključno, razmotrimo rad operatora petlje for koristeći primjer modeliranja slučajnog niza sa zakonom promjene

gdje je - koeficijent od -1 do 1; - normalna slučajna varijabla s nula matematičkih očekivanja i varijance

,

gdje je varijanca simuliranog slučajnog procesa. U ovom slučaju, prvi uzorak se modelira kao normalna slučajna varijabla s nultim matematičkim očekivanjem i varijansom. Simulacijski program ima sljedeći oblik:

modeliranje funkcije_x
r = 0,95; % koeficijent modela
N = 100; % broj simuliranih točaka
ex = 100; % varijance procesa
et = ex*(1-r^2); % slučajne aditivne varijance
x = nule (N, 1); % inicijalizirati vektor x
x(1) = sqrt(ex)*randn; % simulacije prvog brojanja
za i=2:N % petlja od 2 do N
x(i)=r*x(i-1)+sqrt(et)*randn; % Simulacija JV
kraj % kraj petlje
dijagram (x); % prikaz SP-a kao graf

Kada se ovaj program izvrši, bit će prikazana implementacija simuliranog slučajnog niza.

Riža. 2.1. Rezultat modeliranja slučajnog niza.

Rad programa počinje definiranjem varijabli , (varijable ex u programu) i za implementaciju navedenog modela. Zatim se izračunava varijanca a prvo brojanje slučajnog procesa modelira se pomoću funkcije randn. Funkcija randn generira normalne slučajne varijable s nultom srednjom i jediničnom varijansom. Da biste generirali slučajnu varijablu s varijansom, dovoljno je pomnožiti slučajnu varijablu s jediničnom varijansom s , jer varijanca je prosječni kvadrat slučajne varijable s obzirom na matematičko očekivanje. Kao rezultat, imamo programsku liniju

x(1) = sqrt(ex)*randn;

Zatim se for petlja implementira s brojačem i od 2 do N s korakom od 1. Unutar petlje, preostali N-1 uzorci slučajnog procesa se simuliraju u skladu s gornjom formulom. Posljednji redak programa sadrži funkciju plot() koja prikazuje simulirani slijed na ekranu kao graf. Detaljniji rad s prikazom grafova na ekranu bit će riječi u sljedećem poglavlju.

Matlab petlje i uvjeti: teorija i primjeri

Dobar dan. Danas ćemo govoriti o petljama i uvjetima u Matlabu. Materijal koji se uzima kao osnova je Pomozite u Matlabu i nekoliko jednostavnih primjera, koje ćemo s vama analizirati.

Uvjeti u MATLAB-u

Nijedan programski jezik ne može bez takvih konstrukcija kao što su uvjeti, o tome ćemo razgovarati:
Počnimo sa sintaksom uvjeta ako i pogledajte službenu verziju unosa u pomoći:

Ako izraz, izjave, kraj

Što znači:

Ako je stanje, radnja, kraj

Sada primjeri:

x=1; y=61; if ((x >= 0,90) && (y >= 60)) disp("ok"); kraj;

&& - logički operator množenja (logički "AND").
A evo primjera sa drugo:

x=1; y=50; if ((x >= 0,90) && (y >= 60)) disp("ok"); inače disp("nije ispravno") end;

Za razliku od 1. primjera, ovdje će biti prikazano "nije u redu".
Nekoliko riječi o sklopka. Formalno u pomoći:

Sintaksa switch switch_expr case case_expr izjava, ..., iskaz case_expr (case_expr1, case_expr2, case_expr3, ...) izjava, ..., izjava inače izjava, ..., kraj izjave

Više prizemno:

Prekidač sintakse switch_expr case Vrijednost - 1 Slučaj radnje (Vrijednost - 2, Vrijednost - 3, Vrijednost - 4, ...) Radnja Inače Kraj akcije

To znači da ako je data varijabla jednaka vrijednosti u Vrijednost slučaja - 1, tada se radnja izvodi kada Vrijednost slučaja - 1 itd. Ako ništa od slučaj se ne podudara, radnja se izvodi kada inače.
Evo primjera:

Metoda = "Bilinearna"; prekidač niži(metoda) case ("linear","bilinear") disp("Metoda je linearna") case "cubic" disp("Metoda je kubična") case "nearest" disp("Metoda je najbliža") inače disp( "Nepoznata metoda.") kraj

Petlje u MATLAB-u

Prijeđimo sada na cikluse, počevši od za.
Ovo je napisano u priručniku kao

Sintaksa za index = values ​​programske izjave: kraj

Laički rečeno, to znači:

Sintaksa za varijablu = vrijednost kraj radnje

Nećemo se zadržavati na službenim formulacijama, bolje je razumjeti i omiljene primjere.

Za m = 1:10 m kraj

Ovako izgleda najčešća upotreba za. U ovoj petlji jednostavno ispisujemo vrijednost m.
Drugi način pomoću koraka ( korak)

Za s = 1,0: -0,1: 0,0 disp(s) kraj

U ovom slučaju, ciklus za ide od 1 do 0 u koracima od -0,1.
Druga opcija:

Za s = disp(s) end

U ovom slučaju, varijabla sće se uzastopno izjednačiti s 1, 5, 8, 17 i ispisati u skladu s tim.
I također sa za vrlo zgodno za izlaz vektora. Ovdje:

Za e = eye(5) disp("Trenutna vrijednost e:") disp(e) end

U ovom primjeru postoji sekvencijalni pristup elementima vektora e.

Ciklus dok:
Formalno u pomoći:

Sintaksa while izraz programske izjave: kraj

uzemljeno:

Sintaksa dok uvjet Kraj radnje

I odmah uzmimo primjer (kako se koristi u stvarnom životu).

Eps = 10; dok je eps > 1 eps = eps - 1 kraj

Dok je u stanju ( eps > 1) se izvršava, petlja izvodi radnju

(eps=eps-1).
Također u stanju dok možete koristiti logičke I operatore - && i ILI - || , zapisivanje više logičkih izraza u uvjet.

Ako imate pitanja o članku, pišite u komentarima.

codetown.com

For, while petlje u Matlabu (Matlab)

Naredba for je dizajnirana za izvođenje određenog broja radnji koje se ponavljaju. Najjednostavnija upotreba for izjave je kako slijedi:

za count = start:step:finalMatLab naredbekraj

Ovdje je count varijabla petlje, start je njezina početna vrijednost, final je njena konačna vrijednost, a step je korak za koji se broj povećava svaki put kada uđe u petlju. Petlja završava čim vrijednost count postane veća od konačne. Varijabla petlje može uzeti ne samo cijeli broj, već i stvarne vrijednosti bilo kojeg predznaka

Petlja for je korisna za izvođenje ponovljenih sličnih radnji kada je njihov broj unaprijed određen. Fleksibilnija while petlja omogućuje vam da zaobiđete ovo ograničenje.

uvjet petlje whileMatLab naredbekraj

62. Koji tim stvara M-knjigu u uređivaču teksta Riječ povezano s matlab?

Pokretanje nove M-knjige Da biste počeli pisati novu M-knjigu, trebate: 1) pokrenuti Word editor; 2) odaberite u dijaloškom okviru Riječ opcija Novi iz izbornika Datoteka; 3) u prozoru koji se pojavi na ekranu odaberite predložak M-book. Kao rezultat ovih radnji, sustav će se pokrenuti MatLAB, a izgled glavnog izbornika Word uređivača će se donekle promijeniti - u njemu će se pojaviti novi izbornik bilježnica. To će ukazati na to Riječ sustav priključen MatLAB. Ako sada koristite miš za aktiviranje izbornika bilježnica prozor Riječ, na ekranu će se pojaviti dodatni izbornik

63. Koja naredba u uređivaču teksta Word pretvara tekst u MatLab ulaznu ćeliju?

izabrati tim Definirajte ulaznu ćeliju(Definiraj ulaznu ćeliju) u izborniku bilježnica(vidi sliku 3.20), ili pritisnite tipke; nakon toga bi se trebao promijeniti izgled naredbenog retka - naredbeni znakovi postaju tamnozeleni, a naredba postaje okružena tamnosivim uglatim zagradama;@

64. Koja naredba u uređivaču teksta Word osigurava izvršenje MatLab naredbe u ćeliji?

mišem odaberite naredbu Evaluate Cell ili pritisnite kombinaciju tipki; rezultat ovih radnji trebao bi biti pojavljivanje odmah nakon teksta naredbe rezultata njezinog izvršenja od strane MatLAB sustava. Rezultati izvršenja naredbe prikazani su plavom bojom i zatvoreni su uglatim zagradama.

65. Koja naredba u uređivaču teksta Word osigurava izvršavanje MatLab naredbi u cijeloj M-knjigi?

Izvršavanje naredbi za sve ćelije ili grupe ćelija u ulazu sekcije izvodi se pomoću stavke Evaluate Calc Zone, a cijelu M-knjigu odjednom - Evaluate M-book

66. Koja naredba u uređivaču teksta Word osigurava izvršavanje MatLab naredbi u svim ćelijama automatski pri otvaranju M-knjige?

Naredbe za ćelije koje imaju AutoInnit stil pokreću se odmah nakon otvaranja M-knjige. Korisno je uključiti jasnu naredbu u prvu takvu ćeliju za brisanje radnog okruženja. Da biste postavili stil AutoInit, koristite stavku Definiraj ćeliju Autoinit u izborniku Bilježnice.

67. Koje gumbe sadrži panel Excel Link u Excel proračunskoj tablici kada su povezani s MatLabom?

68. Što daje naredba putmatrix?

Funkcija MLPutMatrix koristi se za postavljanje podataka iz ćelija Excel radnog lista u niz Matlab radnog prostora. Argumenti ovoj funkciji su naziv varijable, zatvoren u navodnike, i raspon Excel ćelija povezanih s ovom varijablom

68. Što daje naredba getmatrix?

Obrnutu operaciju izvodi funkcija MLGetMatrix, dok su argumenti ove funkcije naziv varijable MatLab radnog okruženja s 22 podatka, stavljena u navodnike, i rasponom Excel ćelija u koje će se nalaziti podaci ove varijable, također stavljen pod navodnike.

70. Čemu služi Simulink paket?

Matlab sustav uključuje paket za modeliranje dinamičkih sustava - Simulink. Ovaj paket je jezgra interaktivnog softverskog paketa dizajniranog za matematičko modeliranje linearnih i nelinearnih dinamičkih sustava, predstavljenog njegovim funkcionalnim blok dijagramom, nazvanim S-model ili jednostavno model

71. Koja Simulink biblioteka sadrži izvore signala?

Izgradimo najjednostavniji model izvora sinusnog signala koji se dovodi na ulaz virtualnog osciloskopa. Da biste to učinili, kliknite na gumb za otvaranje preglednika knjižnice i u lijevom dijelu prozora preglednika koji se pojavi kliknite na odjeljak Izvori(Izvori), dok su ikone blokova uključenih u ovaj odjeljak prikazane u desnom dijelu prozora

72. Koja Simulink biblioteka sadrži VI-ove za prijavu?

osciloskop Opseg iz odjeljka Sudopere.

73. Koja Simulink biblioteka sadrži blokove diferencijacije i integracije?

Kontinuirano sadrži kontinuirane blokove. Među najvažnijim su blokovi diferencijacije Derivat i Integrator integracije. Prvi blok vrši numeričku diferencijaciju ulaznog signala, za ovaj blok se ne unose parametri. Drugi blok u prozoru parametara sadrži nekoliko polja u kojima možete postaviti integracijsku konstantu na izlazu bloka u polju Početni uvjet

74. Koja Simulink biblioteka sadrži blokove proračuna elementarnih funkcija?

Prozor knjižnice matematika sadrži blokove za izvođenje matematičkih operacija

Blokovi za izračun elementarnih funkcija uključuju tri bloka: blok matematičkih funkcija matematikafunkcija, blok trigonometrijskih funkcija Trigonometrijskifunkcija i funkcionalni blok zaokruživanja Funkcija zaokruživanja.

75. Koliko je vrijednosti parametara koraka postavljeno u Simulinku kada je korak simulacije promjenjiv?

Dvije opcije rješavanja u polju Solver options su od velike važnosti: vrsta rješenja i metoda rješenja. Postoje dvije opcije za prvu opciju:

Solveri s promjenjivim korakom - rješenje s promjenjivim korakom;

Rješači s fiksnim korakom rješenje su s fiksnim korakom. Prema zadanim postavkama, postavljena je opcija rješenja varijabilnog koraka, kada se korak automatski smanjuje s povećanjem stope promjene rezultata i obrnuto. Ova metoda općenito daje bolje rezultate od simulacija s fiksnim razmakom, eliminirajući odstupanja u većini slučajeva. Korištenje modeliranja s fiksnim korakom obično se koristi ako je to zbog specifičnosti problema koji se rješava.

studfiles.net

za...krajnje petlje MatLab

Lekcija 20
Osnovni alati za programiranje
Osnovni tipovi podataka
Vrste programiranja
Dvostrukost operatora, naredbi i funkcija
Neka ograničenja
M-datoteke za skripte i funkcije
Struktura i svojstva skriptnih datoteka
Status varijabli u funkcijama
Struktura funkcije M-datoteke
Status varijable i globalna naredba
Korištenje podfunkcija
Privatni imenici
Greška u obradi

Izlaz poruka o pogrešci
Lasterr funkcija i rukovanje pogreškama
Funkcije varijable argumenta
Funkcije za brojanje broja argumenata
Varijable varargin i varargout
Komentari
Značajke izvršavanja m-datoteka funkcija
Stvaranje P-kodova
Upravljačke strukture
Dijaloški unos
Uvjetni operator
za...krajnje petlje
petlje poput while...end
Dizajn prekidača
probaj...uhvati...završi konstrukciju
Stvaranje pauze u izračunima
Koncept objektno orijentiranog programiranja
Stvaranje klase ili objekta
Provjera pripada li objekt danoj klasi
Ostale značajke objektno orijentiranog programiranja
Što smo novo naučili?

Za...krajnje petlje se obično koriste za organiziranje izračuna s određenim brojem ponovljenih petlji. Struktura takvog ciklusa je sljedeća:

za vag=Izraz. Uputa. .... završna izjava

Izraz se najčešće zapisuje kao s:d:e, gdje je s početna vrijednost varijable petlje var, d je prirast ove varijable, a e je konačna vrijednost kontrolne varijable, po dolasku do koje petlja završava . Također je moguće pisati u obliku s:e (u ovom slučaju d=l). Popis instrukcija koje se izvršavaju u petlji završava naredbom end.

Sljedeći primjeri ilustriraju upotrebu petlje za dobivanje kvadrata vrijednosti varijable petlje:

»za 1=1:5 i^2. kraj;

» za x=0:.25:1 X^2, kraj:

Naredba continue prenosi kontrolu na sljedeću iteraciju petlje, preskačući naredbe koje slijede, a u ugniježđenoj petlji prenosi kontrolu na sljedeću iteraciju glavne petlje. Naredba break može se koristiti za rano prekidanje izvođenja petlje. Čim se to dogodi u programu, petlja se prekida. Moguće su ugniježđene petlje, na primjer:

Kao rezultat izvršavanja ovog ciklusa (datoteka za2.m), formira se matrica A:

Treba napomenuti da formiranje matrica pomoću operatora: (dvotočka) obično traje mnogo manje vremena nego korištenjem petlje. Međutim, korištenje ciklusa je često jasnije i razumljivije. MATLAB dopušta korištenje niza A veličine kao varijable petlje thp. U ovom slučaju, petlja se izvršava onoliko puta koliko ima stupaca u nizu A, a u svakom koraku varijabla var je vektor koji odgovara trenutnom stupcu polja A:

»A=

» za var=A; var, kraj

radiomaster.ru

Ilustrirani vodič o MatLabu › Osnove programiranja › Za...krajnje petlje. Petlje poput while...end. [stranica - 364] | Tutorijali za matematičke pakete

Petlje kao za...kraj. Petlje poput while...end.

Upišite cikluse za... kraj obično se koriste za organiziranje izračuna s zadanim brojem ciklusa koji se ponavlja. Struktura takvog ciklusa je sljedeća:

za var = Izraz. Uputa..... Kraj uputa

Izraz se najčešće piše kao s:d:e, gdje je s početna vrijednost varijable petlje var, d je prirast ove varijable, a e je konačna vrijednost kontrolne varijable nakon koje se petlja završava. Također je moguće pisati u obliku s:e (u ovom slučaju d=1). Popis instrukcija koje se izvršavaju u petlji završava naredbom end.

Sljedeći primjeri ilustriraju upotrebu petlje za dobivanje kvadrata vrijednosti varijable petlje:

> > za 1 = 1: 5 i ^ 2 , kraj ;

> > za x = 0:. 25:1X^2, kraj:

Operater nastaviti prenosi kontrolu na sljedeću iteraciju petlje, preskačući naredbe koje je slijede, a u ugniježđenoj petlji prenosi kontrolu na sljedeću iteraciju glavne petlje. Operater pauza može se koristiti za prerano okončanje petlje. Čim se to dogodi u programu, petlja se prekida. Moguće su ugniježđene petlje, na primjer:

A(1.j) = i + j;

Kao rezultat ovog ciklusa (datoteka za 2.m) formira se matrica A:

Treba napomenuti da formiranje matrica pomoću operatora: (dvotočka) obično traje mnogo manje vremena nego korištenjem petlje. Međutim, korištenje ciklusa je često jasnije i razumljivije. MATLAB dopušta korištenje niza A veličine kao varijable petlje thp. U ovom slučaju, petlja se izvršava onoliko puta koliko ima stupaca u nizu A, a u svakom koraku varijabla var je vektor koji odgovara trenutnom stupcu niza A:

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

> > za var = A; var , kraj

petlje poput while...end

Vrsta petlje dok izvršava se sve dok je uvjet ispunjen:

dok Izjave o uvjetima završavaju

Primjer primjene petlje dok već je citiran. Rani završetak ciklusa provodi se pomoću operatora pauza ili nastaviti.

Uvjetna izjava if

Najjednostavnije rečeno, sintaksa za ovu if naredbu je:

ako<выражение>
<операторы>
kraj

Skrećem vam pozornost na činjenicu da se, za razliku od modernih programskih jezika, ne koristi takav koncept kao složeni operator. Blok uvjetnog izraza nužno završava službenom riječi end.

Slijedi primjer implementacije funkcije sign() koja vraća +1 ako je broj veći od nule, -1 ako je broj manji od nule i 0 ako je broj nula:

x=5;
ako je x > 0
disp(1);
kraj
ako je x< 0
disp(-1);
kraj
ako je x == 0
disp(0);
kraj

Analiza navedenog primjera pokazuje da se sva ta tri uvjeta međusobno isključuju, t.j. kada se jedan od njih aktivira, nema potrebe provjeravati ostale. Implementacija upravo takve logike povećat će brzinu izvođenja programa. To se može postići korištenjem konstrukta

ako<выражение>
<операторы1>% izvršeno ako je uvjet istinit
drugo
<операторы2>% izvršeno ako je uvjet lažan
kraj

Tada se gornji primjer može napisati na sljedeći način:

X=5;
ako je x > 0
disp(1);
drugo
ako je x< 0
disp(-1);
drugo
disp(0);
kraj
kraj

Ovaj program prvo provjerava je li varijabla x pozitivna, a ako je tako, tada se na ekranu prikazuje vrijednost 1, a svi ostali uvjeti se zanemaruju. Ako se prvi uvjet ispostavi netačnim, tada se izvršavanje programa nastavlja u suprotnom (inače) do drugog uvjeta, gdje se provjerava negativnost varijable x, a ako je uvjet istinit, vrijednost -1 se prikazuje na zaslon. Ako su oba uvjeta netočna, onda se ispisuje 0.

Gornji primjer može se napisati u jednostavnijem obliku koristeći drugu MatLab if konstrukciju iskaza:

ako<выражение1>
<операторы1>% izvršeno ako je izraz1 istinit
inače<выражение2>
<операторы2>% izvršeno ako je izraz2 istinit
...
inače<выражениеN>
<операторыN>% izvršeno ako je izrazN istinit
kraj

i zapisuje se kako slijedi:

x=5;
ako je x > 0
disp(1); % se izvršava ako je x > 0
inače ako x< 0
disp(-1); % se izvršava ako je x< 0
drugo
disp(0); % se izvršava ako je x = 0
kraj

S naredbom if možete testirati složenije (složene) uvjete. Na primjer, trebate odrediti: spada li varijabla x u raspon vrijednosti od 0 do 2? To se može učiniti simultanom provjerom dva uvjeta odjednom: x >= 0 i x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Za implementaciju složenih uvjeta u MatLabu koriste se logički operatori:

& - logično I
| - logično ILI
~ - logično NE

Pogledajmo primjer korištenja složenih uvjeta. Neka je potrebno provjeriti je li varijabla x u rasponu od 0 do 2. Program će biti napisan na sljedeći način:

x = 1;
ako je x >= 0 i x<= 2
drugo
kraj

U drugom primjeru provjerit ćemo da li varijabla x ne pripada rasponu od 0 do 2. To se postiže aktiviranjem jednog od dva uvjeta: x< 0 или x > 2:

x = 1;
ako je x< 0 | x > 2
disp("x nije u rasponu od 0 do 2");
drugo
disp("x je u rasponu od 0 do 2");
kraj

Koristeći logičke operatore AND, OR, NOT, možete stvoriti razne složene uvjete. Na primjer, možete provjeriti je li varijabla x u rasponu od -5 do 5, ali ne i u rasponu od 0 do 1. Očito, to se može implementirati na sljedeći način:

x = 1;
ako je (x >= -5 i x<= 5) & (x < 0 | x > 1)
disp("x pripada [-5, 5], ali nije u ");
drugo
disp("x nije u [-5, 5] ili u ");
kraj

Imajte na umu da su zagrade korištene u složenom složenom stanju. Činjenica je da je prioritet operacije AND veći od prioriteta operacije ILI, a da nema zagrada onda bi uvjet izgledao ovako: (x >= -5 i x<= 5 и x < 0) или x >1. Očito bi takva provjera dala drugačiji rezultat od očekivanog.

Zagrade se u programiranju koriste za promjenu prioriteta izvršenja naredbi. Poput aritmetičkih operatora, logički operatori se također mogu mijenjati po želji programera. Zahvaljujući korištenju zagrada, provjera se prvo obavlja unutar njih, a zatim izvan njih. Zato su, u gornjem primjeru, nužni za postizanje željenog rezultata.

Prioritet logičkih operacija je sljedeći:

NOT (~) - najviši prioritet;
I (&) - srednji prioritet;
ILI (|) je najniži prioritet.

izjava petlje while

Programski jezik MatLab ima dva izraza petlje: while i for. Uz njihovu pomoć, primjerice, izvodi se programiranje rekurentnih algoritama, izračunavanje zbroja niza, nabrajanje elemenata niza i još mnogo toga.

U najjednostavnijem slučaju, petlja u programu organizirana je pomoću iskaza while, koji ima sljedeću sintaksu:

dok<условие>
<операторы>
kraj

Ovdje<условие>znači uvjetni izraz poput onog koji se koristi u naredbi if, a petlja while radi sve dok je uvjet istinit.

Imajte na umu da ako je uvjet lažan prije početka petlje, tada se izrazi u petlji nikada neće izvršiti.

Evo primjera while petlje za izračunavanje zbroja niza:


i=1; % ukupnog brojača
dok ja<= 20 % цикл (работает пока i <= 20)

kraj % kraj petlje
disp(S); % prikazati zbroj 210 na ekranu

Sada ćemo zakomplicirati zadatak i izračunat ćemo zbroj niza , dok . Ovdje se u naredbi petlje dobivaju dva uvjeta: ili brojač za i doseže 20, ili vrijednost zbroja S prelazi 20. Ova logika se može implementirati korištenjem složenog uvjetnog izraza u naredbi while petlje:

S = 0; % početne vrijednosti zbroja
i=1; % ukupnog brojača
dok ja<= 20 & S <= 20 % цикл (работает пока i<=10 и S<=20
S=S+i; % izbrojanog iznosa
i=i+1; % povećanje brojača za 1
kraj % kraj petlje

Gornji primjer pokazuje mogućnost korištenja složenih uvjeta u while petlji. Općenito, kao uvjetni izraz, možete napisati iste uvjete kao u uvjetnom if naredbi.

Rad bilo kojeg operatora petlje, uključujući while, može se prisilno prekinuti korištenjem naredbe break. Na primjer, prethodni program bi se mogao prepisati na sljedeći način pomoću naredbe break:

S = 0; % početne vrijednosti zbroja
i=1; % ukupnog brojača
dok ja<= 20 % цикл (работает пока i<=10
S=S+i; % izbrojanog iznosa
i=i+1; % povećanje brojača za 1
ako je S > 20% ako je S > 20,
pauza; % tada petlja završava
kraj
kraj % kraj petlje
disp(S); % prikazuje zbroj 21 na ekranu

U ovom primjeru, drugi uvjet za završetak petlje, kada je S veći od 20, zapisan je u samoj petlji, a pomoću naredbe break iz petlje se izlazi u funkciju disp() odmah nakon petlje while.

Operator za kontrolu izvršavanja druge petlje continue omogućuje vam da preskočite izvođenje fragmenta programa nakon njega. Na primjer, želite izračunati zbroj elemenata niza

a = ;

isključujući element u indeksu 5. Takav program se može napisati na sljedeći način:

S = 0; % početne vrijednosti zbroja
a = ; % niza
i=0; % broja indeksa niza
dok ja< length(a) % цикл (работает пока i меньше
% duljine niza a)
i=i+1; % povećava brojač indeksa za 1
ako je i == 5% ako je indeks 5
nastaviti; % onda ga ne računamo
kraj
S=S+a(i); % zbroja prebrojanih stavki
kraj % kraj petlje
disp(S); % prikaza zbroj 40 na ekranu

Treba napomenuti da se u ovom programu indeks polja i povećava prije provjere uvjeta. To se radi tako da se vrijednost indeksa povećava za 1 na svakoj iteraciji petlje. Ako je prirast brojača i napisan kao u prethodnim primjerima, t.j. nakon što je zbroj izračunat, naredba continue bi uzrokovala da se njegova vrijednost zaustavi na 5, a petlja while bi se izvodila "zauvijek".

for petlja izjava

Često, prilikom organiziranja petlje, potrebno je iterirati preko vrijednosti brojača u zadanom rasponu vrijednosti i s zadanim korakom promjene. Na primjer, da biste iterirali elemente vektora (niza), trebate organizirati brojač od 1 do N s korakom od 1, gdje je N broj elemenata vektora. Za izračunavanje zbroja niza, također je naveden brojač od a do b s potrebnim korakom promjene koraka. itd. Zbog činjenice da se takvi zadaci često susreću u programskoj praksi, za njihovu implementaciju predložen je poseban operator for petlje, koji olakšava i vizualnije implementaciju petlje s brojačem.

Sintaksa izraza petlje for je sljedeća:

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

Razmotrimo rad ovog ciklusa na primjeru implementacije algoritma za pronalaženje maksimalne vrijednosti elementa u vektoru:

a = ;
m = a(1); % trenutna maksimalna vrijednost
za i=1:dužina(a) % petlja od 1 do kraja vektora c
% korak 1 (zadano)
ako m< a(i) % если a(i) >m,
m = a(i); % tada je m = a(i)
kraj
end % end of for petlje
disp(m);

U ovom primjeru, for petlja postavlja brojač i i mijenja njegovu vrijednost s 1 na 10 u koracima od 1. Imajte na umu da ako inkrement nije eksplicitno naveden, tada je zadana vrijednost 1.

U sljedećem primjeru razmotrite implementaciju algoritma za pomicanje vektorskih elemenata udesno, t.j. pretposljednji element stavlja se na mjesto posljednjeg, sljedeći se stavlja na mjesto pretposljednjeg i tako dalje. na prvi element:

a = ;
disp(a);
za i=dužina(a):-1:2 % petlja od 10 do 2 s korakom -1
a(i)=a(i-1); % elemenata pomaka vektora a
end % end of for petlje
disp(a);

Rezultat programa

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

Gornji primjer pokazuje da za implementaciju ciklusa s brojačem s veće vrijednosti na manju morate eksplicitno navesti korak, u ovom slučaju, -1. Ako se to ne učini, petlja će odmah prekinuti svoj rad i program neće raditi ispravno.

Rješenja jednadžbi