MATLAB cw 12 14 Skrypty

background image

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. Sprawd 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 znale 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ó niej 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

background image

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”.

background image

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 znale :

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 & b

a

i

b

a<b

a<b

~a

nie

a

a>b

a>b

a<=b

a

b

a>=b

a

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.

background image

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).

background image

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.

x=input(‘tekst‘)

wy wietla

tekst

, oczekuje na wpisanie liczby

i naci ni cie klawisza [Enter]

x=input(‘tekst‘,‘s‘

)

wy wietla

tekst

, oczekuje na wpisanie ła cucha

znaków i naci ni cie klawisza [Enter]

disp(x)

wy wietla zawarto macierzy

x

bez podawania jej

nazwy (

x

mo e by ‘tekstem’ jawnym)

tekst=int2str(liczba

) konwersja liczby całkowitej na tekst

tekst=num2str(liczba)

konwersja liczby rzeczywistej na tekst

pause

zatrzymuje wykonywanie skryptu do momentu

naci ni cia dowolnego klawisza

pause(s)

zatrzymuje wykonywanie skryptu na s sekund

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 d 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.

background image

str. 33

HM

Matlab_cw_12__14.doc

M A T L A B

A-A

Przekroje

f

l

P

A

A

a

d

D d

a

b

12

4

a

J

=

64

4

d

J

π

=

12

3

ab

J

=

)

(

64

4

4

d

D

J

=

π

Wzór na strzałk ugi cia belki ma posta :

EJ

Pl

f

3

3

=

;

E

=2,1

x

10

5

[N/mm

2

]

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.

background image

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 0

o

do

360

o

background image

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

X

x

X

T

,

mno enie według działania

X

T

x

X.

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:
ćw.12, Fizyka, Skrypt do Laborek
12 14 geogr turyst ćw
cw nr 14
rat med 10 12 14
rach fin ćw,12
MATLAB cw 3
cw 12
Cw 12 Styl życia
MPLP 360;361 02.12.;14.12. 2012
karne 12 14 II wyklad
fs cw 12
prawo cywilne 12 14
Wytyczne do wykonania ćw 2 13 14
Cw 12 SVD
mapa jÄ zykowa europy (1)17 12 14
PKM Egzamin pytania 1 8 12 14 15
Ćw 9  12 12 etyka

więcej podobnych podstron