background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

PRACA ZE SKRYPTAMI

1. Informacje ogólne

Pliki,   które   zawierają   kod   w   języku   Matlaba   nazywane   są   M-plikami.

Pliki te charakteryzują się rozszerzeniem 

.m

.

M-pliki   można   tworzyć   używając   dowolnego   edytora   tekstowego,

chociażby  Notatnika.   Dużo   efektywniejsze   jest   jednak   używanie  programów,

które kolorują składnie skryptu tak, jak to czyni edytor, który dostarczany jest z

Matlabem (Rys. 1). Inne edytory oferujące to oraz wiele innych udogodnień to

TextPad dla środowiska Windows oraz Nedit dla Linuksa.

Rys. 1 Przykład kolorowania składni w skrypcie

Stworzony  przy  użyciu  edytora   tekstowego  skrypt  może  być  użyty  jako

funkcja lub polecenie.

Zalecenia co do nazywania M-plików – nazwa pliku:

musi zaczynać się literą,

nie może zawierać spacji,

nie może zawierać znaku – (minus) oraz innych operatorów,

powinna być bez polskich liter.

PRz, KMK, 01’2005

str. 1/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

2. Wyświetlenie katalogu roboczego

Wyświetlenie katalogu roboczego odbywa się przy użyciu polecenia:

» pwd

W odpowiedzi dostaniemy:

ans =
C:\moje dokumenty

3. Zmiana katalogu roboczego

Zmiana katalogu odbywa się przy użyciu polecenia:

>> cd  nazwakatalogu

Przykładowo:

>> cd  pi

jeżeli nazwa katalogu była skrótem od Podstawy Informatyki, lub:

>> cd  'podstawy informatyki'

jeżeli   nazwa   katalogu   była   dwuwyrazowa,   rozdzielona   spacją.   W   tym

drugim przypadku niezbędne jest użycie apostrofów.

Katalog roboczy jest cały czas wyświetlana w polu: 

Current Directory

 tak,

jak to jest widoczne na Rys. 2.

Rys. 2 Katalog roboczy

4. Utworzenie nowego skryptu

W celu rozpoczęcie pracy nad nowym skryptem należy wybrać z menu 

File

polecenie  

New

  i   następnie  

M-File

.   Innym  sposobem   jest   napisanie   w   linii

komend Matlaba:

>> edit  silnia

PRz, KMK, 01’2005

str. 2/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

gdzie  silnia  będzie   nazwą   pliku,   w   którym   zapisany   zostanie   skrypt.

Rozszerzenie  

.m

  zostanie   przyporządkowane   automatycznie.   Użycie   funkcji

edit  spowoduje   sprawdzenie   czy   w   katalogu  roboczym  istnieje   już   plik   o

podanej nazwie (w tym przykładzie silnia.m), a jeśli nie, to zostanie wyświetlone

okienko   dialogowe   jak   to   pokazane   na  Rys.   3  –   potwierdzenie   spowoduje

uruchomienie wbudowanego edytora.

Rys. 3 Potwierdzenie utworzenia nowego M-pliku

5. Edycja istniejącego skryptu

W celu edycji istniejącego skryptu należy wybrać z menu  

File

  polecenie

Open

.   Następnie   wystarczy   wskazać   w   standardowym  okienku   dialogowym

(Rys. 4) nazwę pliku, który ma być poddany edycji.

Rys. 4 Okienko dialogowe – otwórz skrypt

Innym sposobem jest napisanie w linii komend Matlaba:

>> edit  nazwapliku

PRz, KMK, 01’2005

str. 3/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

gdzie  nazwapliku  jest   nazwą   istniejącego   w   katalogu  roboczym  pliku  o

rozszerzeniu 

.m

.

6. Uruchomienie skryptu

Wykonanie   skryptu   można   wywołać   na   dwa   sposoby.   Pierwszy   z   nich

użycie jednego z mechanizmów, w które wyposażony został wbudowany edytor

M-plików.  Do  dyspozycji  mamy polecenie  

Run

  z  menu  

Debug

  lub aktywny

przycisk spośród pokazanych na Rys. 5. 

Rys. 5 Belka

narzędziowa Debug

Drugi  sposób   pozwala   uruchamiać   skrypty   bezpośrednio   z   linii  poleceń

Matlaba,   bez   konieczności   uruchamiania   edytora   i   wczytywania   do   niego

M-pliku. Załóżmy, że chcemy wykonać skrypt zapisany w pliku silnia.m. W tym

celu wydajemy polecenie:

>> silnia

Jeżeli w katalogu roboczym nie ma pliku silnia.m  otrzymamy następujący

komunikat:

>> silnia

??? Undefined function or variable 'silnia'.

Niezależnie od sposobu uruchomienia skrypt będzie wykonywany linijka po

linijce   z   pominięciem  tych   jego   fragmentów,   które   poprzedzone   są   znakiem

procentu – fragmenty te stanowiące komentarz są wyróżnione kolorem zielonym. 

7. M-pliki jako funkcje użytkownika

Funkcje są M-plikami, które mogą akceptować argumenty (dane wejściowe)

i w wyniku swojego działania zwracać wartości (dane wyjściowe).

Po   zdefiniowaniu   i   zapisaniu   jako   M-pliku   na   dysku,   funkcję   można

wywoływać ze zwykłych skryptów.

PRz, KMK, 01’2005

str. 4/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

Przykład:

W Matlabie argumenty funkcji trygonometrycznych muszą być podawane w

radianach, więc zachodzi konieczność przeliczania kątów z miary stopniowej na

radiany. 

Pierwsza  linia  (nie  licząc  komentarzy)  M-pliku  zawiera  definicję  składni

funkcji.   Po   słowie   kluczowym  

function

  następuje   określenie   nazw

zmiennych,   w   których   zostaną   zapisane   obliczone   wartości   funkcji   –   w

omawianym przykładzie jest to 

[

R

]

. Następnie, po znaku = podana jest nazwa

funkcji  wraz   z   argumentami  czyli  rad

(

D

)

.   Kolejne  linie  M-pliku  zawierają

polecenia   służące   do   obliczenia   wartości   funkcji   na   podstawie   znanych

argumentów.

% przeliczanie stopni [Deg] na radiany [Rad]

function

 

[

R

= rad

(

D

)

;

R = D * 

(

pi/180

)

;

Nazwa funkcji, którą podano w pierwszej linii M-pliku musi być taka sama

jak nazwa pliku (nie licząc rozszerzenia  

.m

). W naszym przykładzie poniższa

funkcja musi być zatem zapisana w pliku 

rad.m

.

PRz, KMK, 01’2005

str. 5/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

Zadanie 1:

zaznaczyć   w   programie   Acrobat   Reader   powyższe   trzy   linie   z

przykładem definicji funkcji za pomocą narzędzia 

,

skopiować,

utworzyć nowy M-plik o nazwie 

rad.m

,

wkleić

zapisać

przetestować działanie funkcji rad pisząc w linii poleceń Matlaba:

>> rad(90)

>> rad(45)

>> rad(360)

wyniki porównać z:

>> pi/2

>> pi/4

>> 2*pi

PRz, KMK, 01’2005

str. 6/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

Zadanie 2:

otworzyć w edytorze skrypt 

wykresy.m

dokonać zmian w skrypcie – zastąpić użyte przeliczenie kąta funkcją
rad()

zapisać   dokonane   zmiany   –   należy   wybrać   opcję  

Save   As...

,   co

umożliwi   podanie   nowej   nazwy   –   proszę   dodać   na   końcu   swoje

inicjały

uruchomić skrypt z poziomu linii poleceń Matlaba

Skrypt   będzie   wykonywany   etapami   dzięki   wykorzystaniu   polecenia

pause

W kolejnych etapach wyświetlane będą wykresy od najprostszego w formie

do najbardziej złożonego. Kolejne warianty zastępują poprzednie do czasu użycia

polecenia figure.

Na   ostatnim   wykresie   przedstawione   są   jednocześnie   obie   funkcje.

Zastosowano różne sposoby zilustrowania ich zmienności – linia oraz słupek.

PRz, KMK, 01’2005

str. 7/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

Zadanie 3:

Uzupełnij   skrypt   rysujący   wykres   momentów   zginających   dla   belki

przedstawionej na Rys. 6.

Rys. 6 Schemat belki

W   zadaniu   należy   posłużyć   się   skryptem  

belka.m

  znajdującym   się   w

katalogu 

c:\moje dokumenty\matlab\podstawy informatyki

Po otwarciu skryptu należy uzupełnić go formułami obliczającymi szukane

wielkości według podanych wzorów (1).

R

A

=

b

L

P

R

B

=PR

A

=

a

L

P

M

 x=

{

R

A

x

dla 0

xa

R

B

⋅ Lx

dla a

xL

(1)

PRz, KMK, 01’2005

str. 8/12

a  

L

 

R

A

P

b

R

B

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

8. Odczyt danych z plików

Wczytanie   danych   z   pliku   dyskowego   odbywa   się   przy   przy   użyciu

polecenia load.

Najczęściej stosuje się:

>> load nazwapliku 

powodujące wczytanie wszystkich zmiennych zapisanych w bianrnym pliku

nazwapliku.mat

. Pliki o rozszerzeniu mat są efektem użycia polecenia save.

W   przypadku   gdy   Matlab   ma   zostać   użyty   do   przetworzenia   danych

pochodzących   przykładowo   z   pomiarów,   to   użytkownik   będzie   dysponował

najprawdopodobniej   plikami   tekstowymi   o   odpowiednio   sformatowanej

zawartości. W najprostszym przypadku pliki takie można wczytać poleceniem:

>> load nazwapliku.txt

Przykład:

Należy wczytać plik binarny o nazwie 

dane.mat

 znajdujący się w katalogu

roboczym:

>> load dane 

Sprawdzenie jakie macierze zostały wczytane jest możliwe przez polecenie

whos:

>> whos

W Command Window powinien pojawić się następujący komunikat:

  Name   Size                 Bytes  Class

  A      1x7                  56  double array
  B      1x7                  56  double array

Jak widać w pliku 

dane.mat 

były zapisane dwie macierze jednowierszowe

A i B o siedmiu elementach.

Następnie należy wczytać plik tekstowy 

dane.txt

:

>> load dane.txt 

PRz, KMK, 01’2005

str. 9/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

Ponowne wyświetlenie informacji o zmiennych znajdujących się w pamięci

pokaże:

>> whos
  Name   Size                   Bytes  Class
  A      1x7                    56  double array
  B      1x7                    56  double array
  dane   2x7                    112  double array

Ważne  

–   dane   odczytane   z   pliku   tekstowego   zostaną   umieszczone   w

pamięci pod nazwą taką, jak nazwa pliku z którego były ładowane.

  Wyświetlenie poszczególnych zmiennych jest bardzo proste – wystarczy

podać ich nazwy w Command Window, przykładowo:

>> dane

Możliwe jest wyświetlenie jednocześnie wszystkich trzech macierzy, gdyż

wszystkie one mają taką samą liczbę kolumn. W tym przypadku należy posłużyć

się następującą konstrukcją:

>> [ A; B; dane ]

Oddzielenie   nazw   poszczególnych   macierzy   średnikami   spowoduje,   że

macierze składowe staną się kolejnymi wierszami nowo-budowanej macierzy –

wyświetlone zostaną w kolejnych wierszach.

ans =

    6.1000   10.3000   11.3000   12.3000   13.2000   14.2000   16.1000

   61.3000   46.4000   46.4000   40.8000   31.6000   29.9000   22.0000

    6.1000   10.3000   11.3000   12.3000   13.2000   14.2000   16.1000

   61.3000   46.4000   46.4000   40.8000   31.6000   29.9000   22.0000

Jak widać w plikach 

dane.mat 

oraz 

dane.txt

 były zapisane te same zbiory.

Jednak   w   pliku   binarnym  

mat

  mogły   być   zapisane   dodatkowo   nazwy

poszczególnych zmiennych.

Na koniec należy usunąć wszystkie zmienne z pamięci poleceniem:

>> clear all

PRz, KMK, 01’2005

str. 10/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

ZADANIE 4:

otworzyć w edytorze skrypt 

wielomian.m

uzupełnić   skrypt   postępując   zgodnie   z   informacjami   zawartymi   w

komentarzach

zapisać   dokonane   zmiany   –   należy   wybrać   opcję  

Save   As...

,   co

umożliwi   podanie   nowej   nazwy   –   proszę   dodać   na   końcu   swoje

inicjały

wykonać skrypt

PRz, KMK, 01’2005

str. 11/12

background image

Podstawy Informatyki, Matlab – opis do ćwiczeń laboratoryjnych

9. Zapis wyników obliczeń do pliku

Zapis wyników obliczeń do pliku dyskowego odbywa się przy przy użyciu

polecenia save

Przykład:

Przykładowe użycie tego polecenia:

>> save wielomian

Spowoduje   zapisanie   do   pliku  

wielomian.mat

  wszystkich   zmiennych

znajdujących   się   w   pamięci.   Przekonamy   się   o   tym   wydając   następujące

polecenia:

>> whos

które spowoduje wyświetlanie nazw zmiennych oraz innych informacji o:

danedxfiknpxxnyyn.

Następnie za pomocą polecenia:

>> clear all

zostaną usunięta wszystkie zmienne z pamięci. Możemy przekonać się o

tym ponownie wydając polecenie whos.

Dużo częściej potrzebne jest zapisanie wybranych zmiennych. 

Zanim to jednak będzie można wykonać należy załadować do pamięci to, co

zostało zapisane do pliku 

wielomian.mat

Tym razem proszę posłużyć się poleceniem:

>> load wielomian   x y f

Ponowne użycie polecenia whos pokaże, że w pamięci znajdują się tylko te

zmienne, które zostały wymienione po nazwie pliku 

wielomian(.mat)

x y f.

Zapis   jednej   spośród   powyższych   zmiennych   zostanie   zrealizowany

poleceniem:

>> save wspolczyniki  f

gdzie 

wspolczynniki(.mat)

  to oczywiście nazwa pliku, do którego nastąpi

zapis.

PRz, KMK, 01’2005

str. 12/12