str. 28 HM Matlab_cw_12__14.doc
M A T L A B
ĆWICZENIE 12 Skrypty
W Matlabie można pracować w ten sposób, że wszystkie polecenia potrzebne do
rozwiązania problemu, reguły, funkcje, itp., pisze się w oknie tekstowego edytora,
a potem cały ten tekst zapisuje w pliku z rozszerzeniem .m . Tak powstają tzw. m-pliki,
tak tworzy się programy/procedury (nazywane skryptami) i funkcje.
Do przechowywania takiej twórczości przeznaczony jest specjalny folder. Matlab wie,
że musi tam szukać programu (lub funkcji), gdy jest on wywołany (przez wpisanie nazwy
pliku bez rozszerzenia .m ). My powinniśmy mieć świadomość, że tylko tam możemy
zapisywać tworzone m-pliki.
Zadanie 19
1. Sprawdz lokalizację folderu do przechowywania m-plików.
Powinien on być utworzony na dysku D:, z dala od macierzystych
plików Matlaba.
2. Upewnij się u prowadzącego zajęcia, że dobrze zlokalizowałeś folder.
3. Usuń zawartość folderu. Jest to folder, który na potrzeby zajęć
nazywać będziemy naszym folderem roboczym. Praca, którą
zostawili tam koledzy z poprzednich zajęć, nie będzie nam potrzebna.
Za to na końcu zajęć, swoją pracę przekopiujesz z tego folderu na
dyskietkę.
Skrypt najlepiej utworzyć wybierając z menu opcję File/New/M-File. Otwiera się nowe
puste okienko. Wpisywane tam polecenia nie są od razu wykonywane. Stanowią
zawartość m-pliku rozumianą jako treść programu. Zapisanie tej zawartości na dysku
odbywa się w klasyczny sposób: File/Save As... . Pamiętać trzeba, aby skontrolować
miejsce zapisu i upewnić się, że będzie to folder przeznaczony na m-pliki.
Struktura skryptu jest bardzo prosta. Tak naprawdę można powiedzieć, że w skrajnym
przypadku nie ma żadnej struktury. Jest po prostu ciąg poleceń i instrukcji.
Poleca się jednak przestrzegać pewnych zasad. Zasady te, to:
rozpoczynanie skryptu od komentarzy opisujących jego przeznaczenia i
metodę stosowaną do obliczeń,
umieszczenie w tym opisie nazw macierzy i zmiennych, które muszą znalezć się
w przestrzeni roboczej Matlaba, by program, czyli skrypt, mógł na nich operować,
umieszczenie w tym miejscu także opisu macierzy i zmiennych tworzonych
przez program,
opatrywanie sekwencji działań lub ciekawszych instrukcji odpowiednim
komentarzem wyjaśniającym, co ułatwi pózniej ewentualne poprawiane skryptu
lub wykorzystanie jego zawartości w innych tworzonych m-plikach (kopiuj/wklej).
Komentarze w skrypcie poprzedza się znakiem procentu %. Znak ten ma znaczenie
tylko do końca wiersza. Treść komentarza, który umieszczony jest na początku skryptu
traktowana jest jak tzw. help skryptu (objaśnienie). Można ten help wywołać bez
uruchamiania skryptu poleceniem
help nazwa_skryptu
Polecenia skryptu muszą odnosić się do zmiennych, które znajdują się w przestrzeni
roboczej Matlaba (w pamięci Matlaba) lub do tych zmiennych, które utworzone są przez
str. 29 HM Matlab_cw_12__14.doc
M A T L A B
sam skrypt. Te zmienne w wyniku działania skryptu będą także znajdować się w
przestrzeni roboczej.
Uruchomienie skryptu (zadziałanie programu) osiąga się poprzez wpisanie nazwy
m-pliku (bez rozszerzenia) w oknie Command Window.
Przykład. Utworzyć skrypt, który działa na macierzach A i B. Podaje wynik dodania i
odjęcia tych macierzy.
Etap 1 - utworzenie skryptu Dodanie_odjecie w edytorze Matlaba.
Etap 2 sprawdzenie działania skryptu w oknie Command Window.
Etap 3 sprawdzenie opisu skryptu, czyli tzw. helpa .
str. 30 HM Matlab_cw_12__14.doc
M A T L A B
Zadanie 20
Utwórz skrypt służący do analizy złożenia dwóch funkcji, których wartości
podane są w macierzach A1 i A2. Macierze te znajdują się w przestrzeni
roboczej Matlaba. Skrypt wykonuje wykresy w jednym oknie podzielonym
na 4 części. W częściach tych powinny się znalezć:
część 1 wykres przebiegu funkcji o wartościach z macierzy A1,
część 2 wykres przebiegu funkcji o wartościach z macierzy A2,
część 3 wykres sumy tych funkcji,
część 4 wykres różnicy tych funkcji.
Do testowania poprawności działania skryptu utwórz w przestrzeni
roboczej Matlaba macierze:
A1 wartości funkcji: f(ą)=sin(ą), w przedziale <0, 8Ą>,
A2 wartości funkcji: g(ą)=sin(0.7ą), w przedziale <0, 8Ą>.
Zadanie 21
Utwórz dwie macierze, które zawierają wartości innych (niż w zadaniu
18) dwóch funkcji. Wykorzystaj skrypt z poprzedniego zadania do analizy
złożenia tych funkcji.
ĆWICZENIE 13 Programowanie
Podczas tworzenia skryptów wykorzystuje się także język programowania Matlaba. Na
zajęciach poznamy i zastosujemy podstawowe jego konstrukcje (typowe dla wielu innych
języków).
Zestawienie operatorów relacji i operatorów logicznych stosowanych
w wyrażeniach języka podaje tabela.
Operatory relacji Operatory logiczne
Operator Relacja Operator Działanie
a==b a=b a | b a lub b
a~=b a & b a i b
a`"b
a
a>b a>b
a<=b
ad"b
a>=b
ae"b
Poniżej opisane są krótko podstawowe instrukcje języka. Zakłada się przy tym,
że typowe przeznaczenie instrukcji i obrazowy pełny jej opis wraz z przykładami
zastosowania, poznał student na zajęciach wcześniejszych kursów informatyki. Należy tu
zwrócić uwagę przede wszystkim na składnię każdej instrukcji, która może nieco różnić
się od tej, którą zna student z innego języka programowania.
str. 31 HM Matlab_cw_12__14.doc
M A T L A B
Instrukcje języka Matlab
if - instrukcja warunkowa - ma dwie postacie
if wyra enie_log if wyra enie_log
polecenie1 polecenie1
polecenie2 polecenie2
. . . . . .
end elseif wyra enie2
polecenie_m
polecenie_m+1
. . .
else
polecenie_n
polecenie_n+1
. . .
end
switch - instrukcja wielowariantowego wyboru
switch warto _wyra enia
case warto 1
polecenia_serii1
case warto 2
polecenia_serii2
...
otherwise
polecenia_serii_n
end
for - pętla iteracyjna
for zamienna=od:krok:do
polecenie1
polecenie2
...
end
while - pętla iteracyjna
while wyra enia_logiczne
polecenie1
polecenie2
...
end
break i return - instrukcje przerwania
break powoduje przerwanie pętli iteracyjnej i wyjście w działaniach za pętlę,
return powoduje przerwanie wykonywania skryptu lub funkcji i powrót za
miejsce wywołania tego skryptu (w innym skrypcie lub oknie Command Window).
str. 32 HM Matlab_cw_12__14.doc
M A T L A B
Współdziałanie użytkownika ze skryptem można zrealizować stosując niżej
przedstawione instrukcje. Służą one do wprowadzania danych liczbowych i tekstowych,
pokazywania rezultatów działań na ekranie i chwilowego zatrzymywania działań w celu
oceny wyników.
wyświetla tekst , oczekuje na wpisanie liczby
x=input( tekst )
i naciśnięcie klawisza [Enter]
wyświetla tekst , oczekuje na wpisanie łańcucha
x=input( tekst , s )
znaków i naciśnięcie klawisza [Enter]
wyświetla zawartość macierzy x bez podawania jej
disp(x)
nazwy (x może być tekstem jawnym)
konwersja liczby całkowitej na tekst
tekst=int2str(liczba)
konwersja liczby rzeczywistej na tekst
tekst=num2str(liczba)
zatrzymuje wykonywanie skryptu do momentu
pause
naciśnięcia dowolnego klawisza
zatrzymuje wykonywanie skryptu na s sekund
pause(s)
Argumentem funkcji disp może być tylko jedna zmienna. Dlatego jeśli chcemy
wyświetlić informację o wielu zmiennych w jednym wierszu, to trzeba umieścić je w
jednej macierzy i jeśli są one różnego typu, to odpowiednio przekonwertować do tego
samego typu (oczywiste jest przecież, że macierz może zawierać tylko elementy tego
samego typu).
Przykład:
>> x=input('wprowad liczb : ')
wprowad liczb : 1234
x =
1234
>> disp(['wprowadzona liczba=',int2str(x)])
wprowadzona liczba=1234
Zadanie 22
Obiekt badany, to utwierdzona belka o długości l, obciążona na końcu
siłą skupioną P. Sporządz skrypt, który służy do wykreślania zależność
strzałki ugięcia f belki, od rodzaju i wielkości jej przekroju
poprzecznego.
Rodzaje przekrojów, to:
kwadrat wymiar charakterystyczny bok a,
koło wymiar charakterystyczny średnica d,
prostokąt wymiary charakterystyczne boki prostokąta a i b,
pierścień wymiary charakterystyczne średnica zewnętrzna D,
średnica wewnętrzna d.
Podczas działania, skrypt pyta o rodzaj przekroju, zaś ciąg wartości
wymiarów charakterystycznych przekroju pobierany jest z przestrzeni
roboczej Matlaba (a więc utworzona jest już np. macierz wartości
średnic d). Także pozostałe dane do obliczeń (stała długość belki l i stała
wartość siły obciążającej P) wprowadza użytkownik działając w oknie
Command Window.
str. 33 HM Matlab_cw_12__14.doc
M A T L A B
P
A
A
f
l
Przekroje
A-A
d D
d
b
a
a
4
a4 Ąd ab3 Ą
4
J = J = J = J = (D4 - d )
12 64 12 64
Wzór na strzałkę ugięcia belki ma postać:
Pl3
f = ; E=2,1x105 [N/mm2]
3EJ
Skrypt sporządza wykresy od razu w dwóch skalach, tj. zwykłej
i logarytmicznej.
Dane do testowania skryptu wprowadzaj w następujących jednostkach:
siła w [N],
wielkości geometryczne w [mm].
ĆWICZENIE 14 Funkcje własne
W m-plikach można przechowywać także własne funkcje. Nazwa utworzonej własnej
funkcji musi być taka sama jak nazwa m-pliku (bez rozszerzenia .m). Definicja funkcji
ma postać:
function [wyn1,wyn2,..]=nazwa_fun(param1, param2,..)
% Opis helpowy działania funkcji
polecenie1
polecenie2
...
wyn1=wyra enie_prowadz ce_do_wyniku1
wyn2=wyra enie_prowadz ce_do_wyniku2
...
Funkcję własną wywołuje się tak samo jak każdą inną funkcję Matlaba.
str. 34 HM Matlab_cw_12__14.doc
M A T L A B
Przykład: Napisać funkcję przeliczającą stopnie na radiany.
Definicja funkcji:
function [y]=stop_rad(x)
% Przelicza stopnie na radiany
a=pi/180;
y=x*a;
% -------------------------------
Zastosowanie funkcji stop_rad :
>> a=[10:10:180]
a =
10 20 30 ... 180
>> z=stop_rad(a)
z =
Columns 1 through 6
0.1745 0.3491 0.5236 0.6981 0.8727 1.0472
Columns 7 through 12
1.2217 1.3963 1.5708 1.7453 1.9199 2.0944
Columns 13 through 18
2.2689 2.4435 2.6180 2.7925 2.9671 3.1416
Zadanie 23
Opracuj funkcję, która służy do zamiany współrzędnych
kartezjańskich x, y na współrzędne biegunowe r, ą. Współrzędne
x, y umieszczone są parami w kolejnych wierszach macierzy. Jest to
macierz argumentów. Podobnie zbudowana jest macierz wyników, tzn.
w każdym jej wierszu jest para współrzędnych r, ą.
Założenia dodatkowe:
funkcja działa dla współrzędnych x, y punktu we wszystkich
ćwiartkach kartezjańskiego układu współrzędnych,
kąt (wynik) określany jest w stopniach w zakresie liczb od 0o do
360o
str. 35 HM Matlab_cw_12__14.doc
M A T L A B
Z a d a n i a d o s a m o d z i e l n e g o w y k o n a n i a
M-pliki, skrypty i funkcje własne
Zadanie 1. Utwórz skrypt, który przegląda elementy danej macierzy i zeruje
wszystkie te, które przekraczają zadaną graniczną wartość. O granicę
pyta sam skrypt po jego uruchomieniu. Przeszukiwana macierz
wyjściowa wygenerowana jest poza skryptem.
Zadanie 2. Utwórz skrypt, który wybiera z danej macierzy liczby, których
wartość mieści się w zadanym przedziale. Liczby te umieszczane są
wektorze. O granice przedziału pyta sam skrypt po jego
uruchomieniu. Przeszukiwana macierz wyjściowa wygenerowana jest
poza skryptem.
Zadanie 3. Napisz skrypt, który spełnia rolę specjalnego operatora
działającego na macierzy. Potrzebuje w przestrzeni roboczej Matlaba
macierzy X. Wystawia użytkownikowi komunikat o możliwych
działaniach i stosownie do wprowadzonej odpowiedzi tworzy macierz
Y wykonując:
transponowanie macierzy X,
odwracanie macierzy X,
mnożenie według działania XxXT,
mnożenie według działania XTxX.
Zadanie 4. Opracuj funkcję, która przelicza prędkość wyrażoną w [km/h] na
prędkość wyrażoną w [m/s].
Zadanie 5. Opracuj funkcję, która na podstawie współrzędnych dwóch
punktów umieszczonych w dwóch macierzach A i B, wyznaczy
współczynniki a i b równania prostej przechodzącej przez te punkty.
Wyszukiwarka
Podobne podstrony:
MATLAB cw Skorowidz hasel
MATLAB cw Metody numer
MATLAB cw Tryb?zposr
matlab cw
MATLAB cw Literatura
MATLAB cw Spis tresci
MATLAB cw 3
MATLAB cw Wykresy
matlab skrypty
cw 42 skrypt ultradzwieki nowe
20121113 MATLABJ skrypty
skrypty matlab
Matlab operacje na macierzach, skrypty
Skrypt PODSTAWY PROGRAMOWANIA W JĘZYKU MATLAB
skrypt matlab
Cw 6 Wlasciwosci gleb Skrypt19 (1) (1)
przykład MATLAB skrypt
więcej podobnych podstron