10 skrypty, studia, MSU - geo gosp, sem III, Matlab

[ Pobierz całość w formacie PDF ]
1. Tworzenie skryptów
Skrypt Matlaba jest to plik tekstowy posiadający rozszerzenie *.m (M – plik), zawierający komendy
Matlaba. Skrypt uruchamia się wpisując jego nazwę (bez kropki i rozszerzenia) w linii poleceń (i
naciskając Enter).
Skrypty tworzymy używając wbudowanego edytora programu Matlab. Edytor uruchamiamy wpisując
polecenie
edit
w linii poleceń, lub wskazując myszą (przy aktywnym oknie
Current directory
) menu
File | New | M-File
Spowoduje to otwarcie pustego okna edytora. W oknie tym wpisujemy kolejne komendy Matlaba. Po
uruchomieniu skryptu wszystkie zawarte w nim polecenia zostaną kolejno wykonane.
Skrypt zapisujemy wskazując myszą menu File | Save As. Spowoduje to otwarcie okna
umożliwiającego wybór katalogu, w którym zapiszemy skrypt oraz podanie nazwy skryptu.
(Rozszerzenie *.m zostanie automatycznie dopisane przez Matlaba).
Po zapisaniu plik skryptu będzie widoczny w oknie
Current directory
.
Skrypty w czasie pracy korzystają ze zmiennych istniejących w przestrzeni roboczej Matlaba
(
workspace
). Również zmienne utworzone w czasie wykonywania skryptu widoczne są w oknie
Workspace
.
2. Wybrane polecenia używane w skryptach
W skryptach używamy poleceń Matlaba w sposób identyczny jak w oknie poleceń. Istnieją jednak
polecenia używane przeważnie w skryptach.
%
- komentarz
input
-
umożliwia wprowadzanie danych w czasie działania skryptu.
Składnia:
1. A=input('Tekst zachęty: ')
Umożliwia wprowadzenie danych liczbowych i przypisanie ich do zmiennej A
2. B=input('Tekst zachęty: ','s')
Umożliwia wprowadzenie danych tekstowych i przypisanie ich do zmiennej B
Przykład 1
>> A=input('Podaj liczbę: ')
-----------------------------
Podaj liczbę:
10
%Matlab wyswietlił tekst podany w nawiasie i czeka aż
%wprowadzimy liczbę i naciśniemy Enter. Podana przez
%nas liczba zostanie przypisana do zmiennej A
A =
10
Przykład 2
>> B=input('Podaj tekst: ','s')
-----------------------------
Podaj tekst:
kura
%Matlab wyswietlił tekst podany w nawiasie i czeka aż
%wprowadzimy teksti naciśniemy Enter. Podany przez
%nas tekst zostanie przypisany do zmiennej B
B =
kura
disp
- wyświetla zawartość zmiennych lub tekstów użytych
jako argument
Składnia:
disp(argument)
Przykład:
>> disp('Dzień dobry')
-----------------------
Dzień dobry
>> disp(1+2)
-----------------------
3
Instrukcja if – else
-instrukcja warunkowa. Umożliwia wykonanie dwóch
różnych zestawów poleceń w zależności od spełnienia (bądź
nie) warunku logicznego.
Składnia:
if(warunek)
polecenie1
else
polecenie2
end
Jeżeli wartość logiczna
warunku = PRAWDA
, wykonane zostaną wszystkie polecenia aż do słowa
kluczowego
else
(u nas:
polecenie1
). W przeciwnym wypadku zostaną wykonane polecenia od
słowa
else
aż do instrukcji
end
(u nas:
polecenie2
).
UWAGA
Instrukcja if może występować w formie skróconej (bez klauzuli
else
):
if(warunek)
polecenie1
end
Wówczas spełnienie warunku logicznego (wartość logiczna:
PRAWDA
) powoduje wykonanie wszystkich
poleceń aż do słowa
end
(u nas:
polecenie1
). W przeciwnym wypadku nie zostanie podjęte żadne
działanie.
Przykład 1
a=10;
if
(a<5)
disp(
'A jest mniejsze od 5'
);
else
disp(
'A jest nie mniejsze od 5'
);
end
--------------------------------------------
A jest nie mniejsze od 5
Proszę zastąpić w powyższym skrypcie instrukcję
a=10
instrukcją
a=input('Podaj liczbe:')
i wypróbować
działanie instrukcji
if – else
dla różnych wartości zmiennej
a.
Przykład 2
OK=
'QQ'
;
if
(~(OK==
't'
))
disp(
'KONIEC'
);
end
--------------------------------------------
KONIEC
Proszę zwrócić uwagę na negację zawartą w warunku: nieprawda, że OK jest równe 't'.
Pętla
for
- (pętla wyliczana, pętla iteracyjna)
umożliwia wykonanie
polecenia lub grupy poleceń określoną ilość razy (
iteracji
).
Składnia:
a.)
for
i1=1:10
x1(i1)=i1;
end
disp(
'x1='
),disp(x1);
------------------------------------------------------------
x1=
1 2 3 4 5 6 7 8 9 10
W powyższym przykładzie dla każdej wartości zmiennej
i1
sterującej pętlą na odpowiedniej pozycji
wektora
x1
zapisywana jest wartość zmiennej
i1
. W wyniku działania pętli otrzymaliśmy zatem wektor
x1
zawierający liczby od 1 do 10. Ponieważ kolejne wartości zmiennej
i1
zmieniały się o
1
, użyliśmy
składni
i1=1:10
, deklarując jedynie początek (
i1=
1
) i koniec (
i1=
10
) dozwolonego zakresu liczb,
pomijając zaś krok, czyli wartość, o jaką zmienia się zmienna
i1
w kolejnych iteracjach.
b.)
for
i2=1:2:9
x2(i2)=i2;
end
disp(
'x2='
),disp(x2);
------------------------------------------------------
x2=
1 0 3 0 5 0 7 0 9
Zmienna
i2
sterująca pętlą w przykładzie b.) zmienia się o
2
w każdej kolejnej iteracji. Użyliśmy zatem
składni
i2=1:2:9
, deklarując początek (
i2=
1
), krok (
2
) i koniec (
i2=
9
) dozwolonego zakresu liczb.
Należy zauważyć, że otrzymany wektor
x2
zawiera kolejne wartości
i2
na pozycjach
1, 3, 5, 7, 9
.
Elementy wektora
x2
o indeksach
2, 4, 6, 8
(zmienna
x2
nie przyjęła takich wartości) są równe zero.
Zadania
I=1:10
Algorytmy
Pętla wyliczana (iteracyjna) – FOR.
W każdej iteracji do I-tego elementu wektora
A przypisywana jest wartość zmiennej I.
Po zakończeniu pętli wektor
A=[1 2 3 4 5 6 7 8 9 10].
A(I)=I
A=3
Logiczny blok decyzyjny (IF). Ponieważ
A=3, jest zatem mniejsza od 4. Wykonany
więc zostanie blok instrukcji Q.
TAK
A<4
NIE
AAA
Zadanie 1
Dany jest wektor x=[0:pi/10:2*pi]. Utwórz wektor y równy iloczynowi funkcji e
x
i sin(x) oraz narysuj wykres
zależności x,y. Wykres powinien być narysowany czerwoną linią ciągłą, zaś punkty zaznaczone gwiazdką.
Zadanie 2
Dany jest wektor x=[0:pi/50:2*pi]. Wyodrębnij pierwsze 15 elementów wektora x i wyświetl jako wektor
kolumnowy.
Zadanie 3
Dana jest zmienna a=5. Podczas działania pętli iteracyjnej (i =1:a) tworzony jest wektor x. Wartość zmiennej i
zapisywana jest na kolejnych pozycjach wektora x. Ile wynosi suma liczb tworzących wektor x po zakończeniu
pętli?
Zadanie 6
Dana jest zmienna a=7. Podczas działania pętli iteracyjnej (i =1:a) tworzony jest wektor x. Wartość zmiennej i
zapisywana jest na kolejnych pozycjach wektora x, o ile podwojona wartość i jest mniejsza od 12. Ile wynosi
suma liczb tworzących wektor x po zakończeniu pętli?
Zadanie 7
Dany jest fragment algorytmu:
I=1:10
A(I)=2*I - 3
Ile wynosi połowa sumy liczb tworzących wektor A?
(Zapisz algorytm w postaci skryptu Matlaba).
Zadanie 8
Dany jest fragment algorytmu:
A=5
TAK
skrypt1.m
A<4
NIE
skrypt2.m
Który skrypt zostanie wykonany po wykonaniu powyższego bloku decyzyjnego?
(Zapisz algorytm w postaci skryptu Matlaba).
Zadanie 9
Dane są wektory: x=[1 2 3 4 5] i y=[5 4 3 2 1]. Który operator (* czy .*) umożliwi obliczenie iloczynu tych
wektorów? Ile wyniesie iloczyn?
Zadanie 13
sin(
t
t
2
)
Dany jest wektor t=[1:0.1:10]. Oblicz wektor
z
=
. Narysuj wykres zależności t,z . Wykres ma być
2
rysowany zieloną linią kropkowaną. Umieść na wykresie opisy osi, tytuł i siatkę.
Zadanie 14
Dany jest wektor t=[1:0.1:10]. Oblicz wektor z równy iloczynowi logarytmu naturalnego z t oraz funkcji
e
.
Wyodrębnij pierwsze 30 elementów każdego wektora i narysuj wykres zależności między nimi. Umieść na
wykresie opisy osi tytuł, legendę.
Q
t
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marucha.opx.pl