Menu
Jest wolny
rejestracja
Dom  /  Internet/ Otwórz plik Matlab. Jak poprawnie zainstalować MATLAB (w tym MATLAB Distributed Computing Server)

Otwórz plik Matlab. Jak poprawnie zainstalować MATLAB (w tym MATLAB Distributed Computing Server)

Pliki są dość powszechnymi obiektami w systemie MATLAB. Niektóre typy plików zostały już omówione w poprzednich rozdziałach. Ta lekcja obejmuje właściwości plików, które są niezależne od ich typu i mają zastosowanie do dowolnego pliku.

Plik zwykle jakiś zbiór danych, zjednoczonych jedną nazwą. Typ pliku jest zwykle określany przez jego rozszerzenie. Rozpatrujemy plik jako całość, chociaż fizycznie na dysku może być reprezentowany przez kilka obszarów – mówią, że w tym przypadku plik jest pofragmentowany.

Przed użyciem jakiegokolwiek pilnika musi być otwarty, a po zakończeniu użytkowania - Zamknięte... Wiele plików można jednocześnie otwierać i odczytywać. Rozważmy polecenia otwierania i zamykania plików.

  • Zespół otwarte imię, gdzie nazwa musi zawierać tablicę znaków lub zmienną symboliczną, otwiera pliki w zależności od parsowania parametru name i rozszerzenia w nazwie name:
    • zmienny- otwiera tablicę nazwaną według nazwy w Edytorze tablicy;
    • .mata- otwiera plik, zapisuje zmienne w strukturze w miejsce pracy;
    • .Figa- otwiera go w Edytorze właściwości;
    • .m- otwiera plik m w edytorze-debuggerze;
    • .mdl- otwiera model w Simulinku;
    • .R- otwiera, jeśli istnieje, plik m o tej samej nazwie;
    • .html- otwiera się Dokument HTML w przeglądarce pomocy.

Jeżeli w ścieżce MATLAB istnieją pliki z rozszerzeniem, to plik zwracany przez polecenie, którego nazwa jest otwierana, jeśli nie, to plik z system plików... Jeżeli plik nie ma rozszerzenia nazwy, to jest otwierany za pomocą programu, którego format pliku zostałby wykryty przez funkcję who ("nazwa pliku"). Domyślnie openother jest wywoływane dla wszystkich plików z zakończeniami innymi niż wymienione nad. Open wywołuje funkcje orepxxx, gdzie xxx jest rozszerzeniem pliku. Wyjątkiem są zmienne obszaru roboczego, dla których wywoływana jest openvar oraz grafika, dla której wywoływana jest openim. Tworząc pliki t o nazwie orepxxx, użytkownicy mogą zmieniać obsługę plików i dodawać nowe rozszerzenia do listy. Pliki otwarte z open muszą być zamknięte z edytorów wywoływanych przez onxxx.

  • = uigetfile (SPECYFIKACJA FILTRÓW. Tytuł)... Otwiera okno dialogowe o nazwie Tytuł i filtr FILTERSPEC (na przykład tablicę komórek zawierającą rozszerzenia plików) i zwraca plik wybrany przez użytkownika oraz ścieżkę do niego. Zwraca FILENAME = 0, jeśli plik nie istnieje lub jeśli użytkownik kliknął Anuluj. = uigetfile (FILTERSPEC, Title. X. Y) umieszcza okno dialogowe w punkcie X, Y (współrzędne w pikselach).

Uigetfile ("*. M; *. Rys; *. Mat: *. Mdl", "Wszystkie pliki MATLAB (* .m, * .fig, * .mat. * .Mdl)") ...

  • = uiputfile (TYTUŁ FILTRACJI) zapisuje plik w oknie dialogowym kontrolowanym przez użytkownika. Parametry są takie same jak w funkcji uigetfile.
  • Zespół otwórz interfejs użytkownika otwiera okno dialogowe, a jeśli użytkownik wybrał plik o znanym rozszerzeniu, wywołuje go za pomocą open lub jeśli nazwa pliku ma nieznane rozszerzenie, wywoływana jest funkcja uigetfile. Argumenty wejściowe do uiopen mogą być mat lab, load, figure, simulink, editor. Bez argumentów wejściowych lub z argumentem wejściowym matlab, okno dialogowe monituje o wybranie * .m, * .fig, * .mat, * .mdl (jeśli zainstalowano Simulink), * .cdr (jeśli zainstalowano przepływ stanów), * .rtw, *. tmf, * .tlc, * .c, * .h, * .ads, * .adb (jeśli zainstalowany jest program Real-Time Workshop). Z argumentem load - * .mat. Wraz z argumentem liczba oferowane są * .fig; simul ink - * .mdl, editor - * .m, * .mdt * .cdr, * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb.

Postać Uiopen

  • Zespół uiload otwiera plik w oknie dialogowym kontrolowanym przez użytkownika za pomocą polecenia Załaduj.

Funkcjonować import interfejsu użytkownika Uruchamia Kreator importu(Kreator importu), który importuje z pliku w bieżącym folderze lub ze schowka Windows. Dopasowuje wybór Zaimportować dane z menu Plik lub wybór Wklej specjalnie z menu Edytować MATLAB.

  • import interfejsu użytkownika (NAZWA PLIKU)- uruchamia Kreatora importu otwierając FILENAME. Kreator importu wyświetla dane do podglądu. Dane i ich reprezentacja jako zmienne MATLAB pojawiają się w oknie podglądu. Rzeczywiste dane, tekst i nagłówki są reprezentowane przez różne zmienne MATLAB. W przypadku danych ASCII należy się upewnić, że Kreator importu rozpoznaje ograniczniki kolumn. Samodzielnie rozpoznaje tylko tabulator, spację, przecinek lub średnik. Musisz kliknąć przycisk Następny a w następnym oknie albo potwierdź wybór separatora dokonany przez Kreatora, albo wybierz Inny i wprowadź dowolny separator.
  • import interfejsu użytkownika ("-plik")- najpierw wyświetla okno dialogowe wyboru pliku.
  • import interfejsu użytkownika ("-pastespecial")- najpierw wyświetla zawartość schowka Windows do podglądu.
  • S = import ui (...) przechowuje wynikowe zmienne jako pola struktury S.
  • Zespół uisave - zorientowany na użytkownika zapisywanie (polecenie zapisywania jest opisane w lekcji 2) za pomocą okna dialogowego Windows.
  • Funkcjonować Zapisz jako- zapisuje rysunek lub model Simulinka w żądanym formacie na nośniku pamięci lub urządzeniu z możliwością drukowania.
  • Funkcjonować saveas (H, "NAZWA PLIKU")- zapisuje dane zgodnie z poleceniem grafiki deskryptorowej H w pliku NAZWA PLIKU. Format pliku jest określony przez rozszerzenie nazwy FILENAME.
  • Funkcjonować saveas (H. „NAZWA PLIKU”. „FORMAT”)- wykonuje to samo, ale z parametrem FORMAT (format określany jest tak samo jak rozszerzenie nazwy pliku i może się od niego różnić). FORMAT ma pierwszeństwo przed rozszerzeniem nazwy pliku. Parametry funkcji:
    • "Figa"- zapisz figurę (wykres) w binarnym pliku fig;
    • "m" lub „mfig”- zapisz figurę w binarnym pliku fig i utwórz plik m, aby go załadować;
    • "mmat"- zapisz rysunek w pliku m jako sekwencję poleceń tworzenia rysunku. Może nie obsługiwać najnowszych funkcji graficznych.

Saveas (gcf. „Wyjście”, „fig”) saveas (gcf, „wyjście”, „bmp”)

Polecenie lub funkcja kasować usuwa plik lub obiekt graficzny.

Lekcja numer 19.

Praca z plikami

    Otwieranie i zamykanie plików

    Operacje na plikach binarnych

    Operacje na plikach sformatowanych

    Pozycjonowanie plików

    Pliki specjalistyczne

Pliki są dość powszechnymi obiektami w systemie MATLAB. Niektóre typy plików zostały już omówione w poprzednich rozdziałach. Ta lekcja obejmuje właściwości plików, które są niezależne od ich typu i mają zastosowanie do dowolnego pliku.

Otwieranie i zamykanie plików

Plik zwykle jakiś zbiór danych, zjednoczonych jedną nazwą. Typ pliku jest zwykle określany przez jego rozszerzenie. Rozpatrujemy plik jako całość, chociaż fizycznie na dysku może być reprezentowany przez kilka obszarów – mówią, że w tym przypadku plik jest pofragmentowany.

Przed użyciem jakiegokolwiek pilnika musi być otwarty, i na koniec użytkowania - Zamknięte. Wiele plików można jednocześnie otwierać i odczytywać. Rozważmy polecenia otwierania i zamykania plików.

    Polecenie open name, gdzie nazwa musi zawierać tablicę znaków lub zmienną symboliczną, otwiera pliki w zależności od analizy parametru name i rozszerzenia w nazwie:

    • zmienna — otwiera tablicę nazwaną według nazwy w Edytorze tablic;

      Mat - otwiera plik, zapisuje zmienne w strukturze w obszarze roboczym;

      Rys - otwiera go w Edytorze właściwości;

      M - otwiera plik m w edytorze-debuggerze;

      Mdl - otwiera model w Simulinku;

      R - otwiera, jeśli istnieje, plik m o tej samej nazwie;

      Html — otwiera dokument HTML w przeglądarce pomocy.

Jeśli pliki z rozszerzeniem istnieją w ścieżce MATLAB, to plik, który jest zwracany przez polecenie, które nazwa jest otwierane, jeśli nie, to plik z systemu plików. Jeżeli plik nie ma rozszerzenia nazwy, to otwiera go program, którego format pliku wykryłaby funkcja igpsiGname ") Domyślnie dla wszystkich plików z zakończeniami innymi niż wymienione powyżej wywoływane jest polecenie openother. funkcje orepxxx, gdzie xxx to rozszerzenie pliku Wyjątkami są zmienne obszaru roboczego, dla których wywoływana jest openvar, oraz grafika, dla której wywoływana jest openim. Tworząc pliki t o nazwie orepxxx, użytkownicy mogą modyfikować obsługę plików i dodawać nowe rozszerzenia do listy. Pliki otwarte z open muszą być zamknięte z edytorów wywoływanych przez onxxx.

    Uigetfile (FILTERSPEC. Tytuł). Otwiera okno dialogowe o nazwie Tytuł i filtr FILTERSPEC (na przykład tablicę komórek zawierającą rozszerzenia plików) i zwraca plik wybrany przez użytkownika oraz ścieżkę do niego. Zwraca FILENAME = 0, jeśli plik nie istnieje lub jeśli użytkownik kliknął Anuluj. = uigetfile (FILTERSPEC, Title. X. Y) umieszcza okno dialogowe w punkcie X, Y (współrzędne w pikselach).

Przykład:

Uigetfile ("*. M; *. Rys; *. Mat: *. Mdl". "Wszystkie pliki MATLAB (* .m, * .fig, * .mat. * .Mdl)": ...

    Uiputfile (FILTERSPEC. TITLE) zapisuje plik w oknie dialogowym kontrolowanym przez użytkownika. Parametry są takie same jak w funkcji uigetfile.

    Polecenie ui open otwiera okno dialogowe, a jeśli użytkownik wybrał plik o znanym rozszerzeniu, wywołuje go za pomocą open lub jeśli nazwa pliku ma nieznane rozszerzenie, wywoływany jest uigetfile. Argumenty wejściowe do uiopen mogą być mat lab, load, figure, simulink, editor. Bez argumentów wejściowych lub z argumentem wejściowym matlab, okno dialogowe monituje o wybranie * .m, * .fig, * .mat,* .mdl (jeśli zainstalowany jest Simulink), *. cdr (jeśli ustawiony jest przepływ stanów), * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb (jeśli jest zainstalowany Real-Time Workshop). Z argumentem load - * .mat. Wraz z argumentem liczba oferowane są * .fig; simul ink - * .mdl, editor - * .m, * .mdt * .cdr, * .rtw, * .tmf, * .tlc, * .c, * .h, * .ads, * .adb.

Przykład:

postać uiopen.

    Polecenie uiload otwiera plik w oknie dialogowym kontrolowanym przez użytkownika za pomocą polecenia load.

Funkcja importu interfejsu użytkownika uruchamia Kreatora importu, który importuje z pliku w bieżącym folderze lub ze schowka Windows. Odpowiada to wybraniu Importuj dane z menu Plik lub wybraniu Wklej specjalnie z menu Edycja MATLAB.

    Import interfejsu użytkownika (FILENAME) — uruchamia Kreatora importu, otwierając FILENAME. Kreator importu wyświetla dane do podglądu. Dane i ich reprezentacja jako zmienne MATLAB pojawiają się w oknie podglądu. Rzeczywiste dane, tekst i nagłówki są reprezentowane przez różne zmienne MATLAB. W przypadku danych ASCII należy się upewnić, że Kreator importu rozpoznaje ograniczniki kolumn. Samodzielnie rozpoznaje tylko tabulator, spację, przecinek lub średnik. Należy kliknąć przycisk Dalej iw następnym oknie albo potwierdzić wybór ogranicznika dokonanego przez Kreatora, albo wybrać Inne i wprowadzić dowolny ogranicznik.

    import ui ("-fi le") - najpierw wyświetla okno dialogowe wyboru pliku.

    import ui ("-pastespecial") - najpierw wyświetla zawartość schowka Windows do podglądu.

    Import S = ui (...) przechowuje otrzymane zmienne jako pola struktury S.

    Komenda uisave jest zapisem kontrolowanym przez użytkownika (polecenie zapisu jest opisane w lekcji 2) z oknem dialogowym Windows.

    Funkcja Saveas - zapisuje rysunek lub model Simulinka w żądanym formacie na nośniku pamięci lub urządzeniu z możliwością drukowania.

    Funkcja saveas (H, "FILENAME") - zapisuje dane zgodnie z poleceniem grafiki deskryptora H w pliku FILENAME. Format pliku jest określony przez rozszerzenie nazwy FILENAME.

    Funkcja saveas (H. "FILENAME". "FORMAT") - robi to samo, ale z parametrem FORMAT (format określa się tak samo jak rozszerzenie nazwy pliku i może się od niego różnić). FORMAT ma pierwszeństwo przed rozszerzeniem nazwy pliku. Parametry funkcji:

Przykłady:

saveas (gcf. „wyjście”, „fig”) saveasCgcf, „wyjście”, „bmp”)

Polecenie lub funkcja usuwania usuwa plik lub obiekt graficzny.

    Usuń nazwę pliku usuwa plik w bieżącym folderze. Może być zastosowane *. Preferowane użycie z wpisem w postaci funkcji usuwania ("plik mw"), gdy nazwa pliku jest ciągiem.

    delete (H) usuwa obiekt graficzny z deskryptorem H. Jeśli ten obiekt jest oknem, to jest wcześniej zamykane.

    Funkcja close (H) zamyka tylko okna graficzne. Aby zamknąć pliki, użyj polecenia f close.

Aby zapisać pliki na dysku, użyj polecenia save, które jest używane w dość oczywistych formach:

zapisać

zapisz nazwę pliku zapisz nazwę pliku varl var2 ... zapisz ... opcja zapisz ("nazwa pliku", ...)

W związku z tym polecenie load służy do odczytywania plików z dysku:

Załaduj

wczytaj nazwę pliku wczytaj nazwę pliku X Y Z

załaduj nazwę pliku -ascii załaduj nazwę pliku -mat

W tych poleceniach nazwa pliku jest określana zgodnie z zasadami przyjętymi w system operacyjny Klasa MS-DOS. Te polecenia są zwykle powielane przez przyciski paska narzędzi i przeglądarkę plików.

Operacje na plikach binarnych

Dwójkowy, lub dwójkowy, nazywane są plikami, których dane są kodami maszynowymi. Poniżej wymieniono podstawowe operacje z takimi kodami.

    fopen (nazwa pliku, uprawnienie) - otwiera plik o nazwie nazwapliku i parametrze określonym w uprawnieniu i zwraca identyfikator fid o wartości: 0 - odczytany z klawiatury (uprawnienie ustawione na "r"); 1 - wyjście na wyświetlacz (uprawnienie ustawione na „a”); 2 - wyświetlenie komunikatu o błędzie (uprawnienie ustawione na „a”); -1 - nie udało się otworzyć pliku z wyjściem wiadomości wiadomości o rodzaju błędu. Fid jest często używany jako argument przez inne funkcje i programy I/O. Nazwa pliku nazwa pliku może zawierać ścieżkę do pliku.

Jeśli plik do otwarcia do odczytu nie znajduje się w bieżącym katalogu, to funkcja fopen szuka pliku w ścieżce określonej w MATLAB.

Parametr uprawnienia może przyjąć jedną z następujących podstawowych wartości (zobacz system pomocy dla innych):

    "r" - otwórz plik do odczytu (domyślnie);

    "r +" - otwórz plik do odczytu i zapisu;

    "w" - usuń zawartość istniejącego pliku lub utwórz nowy i otwórz go do zapisu;

    "a" - utwórz i otwórz nowy plik lub otwórz istniejący dlarekordy dołączane na końcu pliku.

Dodanie „b” do tej linii (domyślnie) mówi systemowi, aby otworzył plik w trybie binarnym.

Dodanie „t” zamiast b do tego wiersza, na przykład „rt”, w systemach operacyjnych, które rozróżniają pliki tekstowe i binarne, instruuje system, aby otworzył plik w trybie tekstowym. Na przykład we wszystkich wersjach MATLAB dla Windows / MS-DOS i VMS nie można otworzyć plik tekstowy bez parametru „rt”. Podczas wprowadzania plików za pomocą fopen w trybie tekstowym, wszystkie karetki powracają przed usunięciem znaku Nowa linia.

    Fopentfilename.permission, format) — otwiera plik zgodnie z powyższym opisem, zwracając identyfikator pliku i komunikat. Dodatkowo wartość parametru format pozwala na dokładne określenie formatu liczb. Dostępnych jest 8 możliwych formatów, których opis można znaleźć w systemie pomocy. W szczególności ciąg formatujący może być „natywny” (format komputera, na którym jest zainstalowany system), „vax”, „sgau” (komputery VAX i Cray) i tak dalej.

Niektóre wezwania do fread lub fwrite mogą przesłonić format liczbowy określony w wezwaniu do fopen.

    fids = fopen С all ") - zwraca ciąg wektorowy zawierający identyfikatory wszystkich otwartych plików, z wyjątkiem standardowych strumieni О, 1 i 2. Liczba elementów wektora jest równa liczbie plików otwartych przez użytkownika;

    Fopen (fid) — zwraca pełną nazwę pliku, ciąg .permission i ciąg formatu. W przypadku użycia nieprawidłowych wartości fid, dla wszystkich argumentów wyjściowych zwracane są puste ciągi.

Polecenie fclose zamyka plik. Ma następujące opcje.

    Status = fclose (fid) - zamyka plik, jeśli jest otwarty. Zwraca status statusu pliku, równy 0, jeśli zamknięcie się powiodło, a -1 w przeciwnym razie. Argument fid jest identyfikatorem powiązanym z otwartym plikiem (bardziej szczegółowy opis znajduje się w funkcji fopen);

    status = fclose ("all") zamyka wszystkie otwarte pliki. Zwraca 0 w przypadku sukcesu i -1 w przeciwnym razie.

Przykład otwierania i zamykania pliku:

"Fid = fopen (" c: \ ex "." A + ") fid = 4

»Fzamknij (4)

ans =

    Fread (fid, rozmiar, precyzja) - odczytuje dane binarne z podanego pliku i umieszcza je w macierzy A. Wyjściowy argument count zawiera liczbę pomyślnie odczytanych elementów. Wartość fid jest liczbą całkowitą zwracaną przez funkcję fopen; size to argument określający ilość danych do odczytania. Jeśli rozmiar nie jest określony, f read czyta dane do końca pliku.

Stosowane są następujące parametry rozmiaru:

    n - wczytaj n elementów do wektora kolumnowego;

    Czyta tyle elementów, ile potrzeba do wypełnienia matrycy pp.

Wypełnianie odbywa się za pomocą kolumn. Jeśli w pliku jest mało elementów, to matryca jest dopełniana zerami. Jeżeli odczyt dojdzie do końca pliku bez wypełnienia matrycy o wymaganym rozmiarze, to matryca jest wypełniona zerami. Jeśli wystąpi błąd, odczyt zatrzymuje się na ostatniej odczytanej wartości. Parametr precyzji to ciąg znaków, który określa precyzję liczbową odczytu wartości, kontroluje liczbę odczytanych bitów dla każdej wartości i interpretuje te bity jako liczbę całkowitą, zmiennoprzecinkową lub znak

    Fread (fid, size.precision, skip) — zawiera arbitralny argument pomijania, który określa liczbę bajtów do pominięcia po każdym odczycie. Może to być przydatne podczas wyodrębniania danych w nieciągłych obszarach z rekordów o stałej długości. Jeśli precyzja jest w formacie bitowym, takim jak „bitN 1 lub „ ubitN ”, podawana jest wartość pomijania ~ bity. Obszerną listę możliwych wartości precyzji można znaleźć w systemie pomocy MATLAB;

    count = fwrite (fid, A, Precision) - zapisuje elementy macierzy A do pliku, reprezentując je z określoną precyzją. Dane są zapisywane w pliku kolumna po kolumnie, a argument wyjściowy count zawiera liczbę pomyślnie zapisanych elementów. Wartość fid jest liczbą całkowitą z funkcji f open. Dodaje powrót karetki przed początkiem nowej linii;

    count = fwrite (fid.A, precyzja, pomiń) — robi to samo, ale zawiera arbitralny argument pominięcia, który określa liczbę bajtów do pominięcia przed każdym zapisem. Jest to przydatne podczas wstawiania danych do nieciągłych obszarów w rekordach o stałej długości. Jeśli precyzja jest w formacie bitowym, takim jak „bitN” lub „ubitN”, wartość pomijana jest określana w bitach.

Przykłady:

»Fid = fopen (" c: \ prim "," a + ")

Fid =

»A = magia (7)

A =

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

»Liczba = fwrite (j.A)

Liczba =

»Stan = fzamknij (3)

Stan =

»Fid

Fopen („c: \ prim”. „R”)

Fid =

„= Przestraszony (3.)

30

39

48

1

10

19

28

38

47

7

9

18

27

29

46

6

8

17

26

35

37

5

14

16

25

34

36

45

13

15

24

33

42

44

4

21

23

32

41

43

3

12

22

31

40

49

2

11

20

liczba =

Operacje na plikach sformatowanych

Pliki zawierające sformatowane dane są nazywane sformatowane pliki. Poniżej znajdują się funkcje, które służą do pracy z takimi plikami.

    Line = fgetl (fid) - Zwraca ciąg z plik z identyfikatorem fid z usuniętym znakiem końca linii. Jeśli fgetl wykryje koniec pliku, zwraca -1 (więcej informacji znajdziesz w fopen szczegółowy opis fid);

    Line = f gets (fid) — Zwraca wiersz z pliku o identyfikatorze fid bez usuwania znaku końca wiersza. Jeśli fgets wykryje koniec pliku, zwraca -1;

    Line = fgets (fid.nchar) — Zwraca nie więcej niż nchar pierwszych znaków wiersza. Żadne dodatkowe znaki nie są odczytywane po znaku końca wiersza lub końca pliku (zobacz przykłady funkcji fscanf);

    Count = fprintf (fid.format, A....) - formatuje dane zawarte w rzeczywistej części macierzy A, pod kontrolą ciągu formatującego i zapisuje je do pliku o identyfikatorze fid. Funkcja fprintf zwraca liczbę zapisanych bajtów. Wartość fid jest liczbą całkowitą zwracaną przez funkcję fopen.

Jeśli pominiesz identyfikator fid na liście argumentów funkcji fprintf, wynik zostanie wyświetlony na ekranie, tak jak przy użyciu standardowego wyjścia (fid = l).

    fprintf (format, A....) - nagrywanie odbywa się na standardowe urządzenie - ekran (ale nie do pliku). Ciąg formatu definiuje system liczbowy, wyrównanie, cyfry znaczące, szerokość pola i inne atrybuty formatu wyjściowego. Może zawierać zwykłe litery alfabetu wraz z kwalifikatorami, znakami wyrównania itp.

Tabela 19.1. Znaki specjalne w ciągach formatu

Symbol

Opis

\ n

Nowa linia

\ T

Zakładka pozioma

\ b

Backspace jeden znak

\ r

Zwrot karetki

\ F

Nowa strona

\\

Ukośnik wsteczny

\" lub "

Pojedynczy cytat

%%

Procent

Funkcja fprintf zachowuje się jak równoważna ANSI C funkcja fprintf O, z pewnymi wyjątkami i rozszerzeniami. Tabela 19.1 są opisane Symbole specjalne znalezione w ciągu formatu. Aby wyświetlić dane numeryczne lub znakowe w ciągu formatu, użyj specyfikatory, wymienione w tabeli. 19.2.

Tabela 19.2. Specyfikatory formatu wyjściowego

Specyfikator

Opis

% D Zapis dziesiętny (podpisany)
*Z Pojedynczy znak

% e

Wykładniczy zapis liczb za pomocą „e” w dolnym rejestr, na przykład 3.1415e + 00

Wykładniczy zapis liczb za pomocą litery „E” u góry rejestr, na przykład 3.1415Е + 00

% F

System notacji punktów stałych

% g

Najbardziej kompaktowy z% e i% f. Końcowe zera nie są wyświetlane

% G

To samo co% d, ale używa wielkich liter dla „E”

%O

Notacja ósemkowa (bez znaku)

% s

Łańcuch znaków

% u

Zapis dziesiętny (bez znaku)

% x


Notacja szesnastkowa z użyciem małych liter („a” ... „f”)

% X

Notacja szesnastkowa z użyciem wielkich liter („A” ... „F”)

Między znakiem procentu a literą w specyfikatorze można wstawić dodatkowe znaki. Ich znaczenie wyjaśniono w tabeli. 19.3.

Tabela 19.3. Opcje specyfikatora formatu

Symbol

Opis

Przykład

Minus" (-)

Przekonwertowane argumenty z wyrównaniem do lewej

% -5,2d

Znak plusa (+)

Zawsze drukuj znak liczby (+ lub -)

% + 5,2d

Zero (0)

Dopełnienie zerami zamiast spacji

% 05,2d

Liczby

Określa minimalną liczbę znaków do wydrukowania

% 6f

Cyfry (po kropce)

Liczba po kropce określa liczbę drukowanych znakówna prawo od kropki dziesiętnej

% 6.2f

    A = fscanf (fid, format) - odczytuje wszystkie dane z pliku o identyfikatorze fid, konwertuje je zgodnie z wartością parametru format i zwraca jako macierz A. Wartość identyfikatora fid jest liczbą całkowitą zwracaną przez funkcja fopen. Parametr format to ciąg znaków, który określa format odczytywanych danych;

    Fscanf (fid.format, size) — odczytuje ilość danych określoną przez parametr size, konwertuje je zgodnie z parametrem format i zwraca, wraz z liczbą pomyślnie odczytanych elementów, count. Parametr size to arbitralny argument określający ilość danych do odczytania. Obowiązują następujące wartości:

    • inf - wczytanie elementów do końca pliku i umieszczenie ich w wektorze kolumnowym zawierającym taką samą liczbę elementów jak w pliku;

      Czyta tyle elementów, ile potrzeba, aby wypełnić macierz rozmiarów pp. Wypełnianie odbywa się za pomocą kolumn. Wartość n (ale nie!) Może przyjąć wartość Inf.

Ciąg formatu składa się ze zwykłych znaków i/lub specyfikatorów. Specyfikatory wskazują typ odczytywanych danych i zawierają znak %, opcja szerokości pola i znaki formatu. Możliwe znaki formatu są wymienione w tabeli. 19.4.

Tabela 19.4. Formatowanie znaków używanych przez funkcję fscanf

Symbol

Opis

Sekwencja znaków; parametr szerokości pola określa liczbę odczytanych znaków

% D

Dziesiętny

% e,% f,% g

Liczba zmiennoprzecinkowa

% i

Liczba całkowita ze znakiem

%

Podpisana liczba ósemkowa

% s

Sekwencja znaków innych niż białe znaki

% u

Liczba całkowita dziesiętna ze znakiem

% x

Szesnastkowa liczba całkowita ze znakiem

[...]

Sekwencja znaków

Między symbolem % a znak formatu może wstawić następujące znaki:

    Gwiazdka (*) oznacza, że ​​odpowiednia wartość nie musi być przechowywana w macierzy wyjściowej;

    Ciąg liczb określa maksymalną szerokość pola;

    Litera oznacza rozmiar wynikowego obiektu: h dla krótkiej liczby całkowitej (na przykład% n d), 1 dla długiej liczby całkowitej (na przykład% ld) lub liczby zmiennoprzecinkowej o podwójnej precyzji (na przykład % LG ).

Przykłady:

"X = 0:pi/10:pi:y-;

»Fid = fopent" c: \ sin.txt ". V);

»Fprintf (fid." X5.3f * 10.6f \ n ".y): fclose (fid);

0.000 0.000000

0.314 0.309017

0.628 0.587785

0.942 0.809017

1.257 0.951057

1.571 1.000000

1.885 0.951057

2.199 0.809017

2.513 0.587785

2.827 0.309017

3.142 0.000000

»Fid = fopen (" c: \ sin.txt "." R ");

»Q = fscanf (fid." * G ".):

"Q"

ans =

0.3140 0.3090

0.6280 0.5878

0.9420 0.8090

1.2570 0.9511

1.5710 1.0000

1.8850 0.9511

2.1990 0.8090

2.5130 0.5878

2.8270 0.3090

»Fgetl (fid)

Odp =

3.142 0.000000

»Fgety (fid)

Odp =

»Fzamknij (fid)

Odp =

Pozycjonowanie plików

Gdy pliki są odczytywane i zapisywane, są one zwykle przedstawiane jako dane liniowe, takie jak zapis na ciągłej taśmie magnetycznej. Miejsce, z którego pochodzi czytanie ten moment(lub stanowisko, z którego dokonywane jest nagranie) jest określane przez specjalny wskaźnik. Pliki z dostępem sekwencyjnym są skanowane ściśle od początku do końca, aw plikach o dostępie swobodnym wskaźnik można umieścić w dowolnym miejscu, z którego dane pliku są zapisywane lub odczytywane.

W ten sposób wskaźnik zapewnia pozycjonowanie pliku. Dostępnych jest szereg funkcji pozycjonowania:

    Eofstat = feof (fid) - Sprawdza, czy osiągnięto koniec pliku o identyfikatorze fid. Zwraca 1, jeśli wskaźnik znajduje się na końcu pliku, 0 w przeciwnym razie;

    Message = ferror (fid) — Zwraca informacje o błędzie w postaci ciągu komunikatu. Fid to identyfikator Otwórz plik(szczegółowy opis funkcji fopen);

    Message = f error (f id, "clear") - czyści wskaźnik błędu dla określonego pliku;

    Ferror (.) — Zwraca errnum ostatniej operacji I/O dla określonego pliku.

Jeśli ostatnia operacja I / O wykonana na pliku określonym przez fid zakończyła się powodzeniem, komunikat jest pustym ciągiem, a errnum wynosi 0.

Wartość niezerowa errnum wskazuje, że wystąpił błąd podczas ostatniej operacji we/wy. Parametr message zawiera ciąg znaków zawierający informacje o charakterze błędu, który wystąpił.

Przykład:

»Fid = fopen (" c: \ przyklad "." A + ")

Fid =

»T = strach (3,)

Pusta macierz: 4-na-0

»Ferror (3)

Odp =

Czy plik jest otwarty do odczytu? ... ... ...

    frewind (fid) - ustawia wskaźnik pozycji na początek pliku o identyfikatorze fid;

    Status - fseekCfid, offset, origin) - ustawia wskaźnik w pliku z identyfikatorem fid na określoną pozycję - na bajt określony przez parametr offset względem pochodzenia.

Argumenty:

    Fid to identyfikator pliku zwracany przez funkcję fopen;

    offset to wartość, która jest interpretowana w następujący sposób:

    • offset> 0 - zmienia pozycję wskaźnika o bajty przesunięcia w kierunku końca pliku;

      offset = 0 - nie zmienia pozycji wskaźnika;

      zrównoważyć<0 - изменяет позицию указателя на offset байт в направлении к началу файла;

    Pochodzenie to argument, który przyjmuje następujące wartości:

    • „bof lub -1 to początek pliku;

      "cof" lub 0 to bieżąca pozycja wskaźnika w pliku;

      "eof" lub 1 - koniec pliku;

    status jest argumentem wyjściowym. Wartość wynosi 0, jeśli operacja fseek się powiodła, a -1 w przeciwnym razie. Jeśli wystąpi błąd, użyj funkcji ferror, aby uzyskać więcej informacji;

    position = ftel I (fid) - Zwraca pozycję wskaźnika dla pliku z fid, uzyskaną za pomocą funkcji fopen. Argument wyjściowy pozycji jest nieujemną liczbą całkowitą określającą pozycję wskaźnika w bajtach względem początku pliku. Jeśli żądanie nie powiodło się, pozycja wynosi -1. Użyj funkcji ferror, aby wyświetlić naturę błędu.

Przykłady:

»F id-fopen (" c: \ przykład "." A + ")

Fid =

„Liczba = fwrite (3, magia (6))

Liczba = 36

»FtelK3)

Odp =

»Frewind (3): ftell (3)

Odp =

„Fseek (3.12.0); ftell (3)

ans =

»Feof (3)

Odp =

»Fzamknij (3)

Odp =

    S = sprintf (format, A, ...) - formatuje dane w macierzy A w formacie określonym przez parametr format i tworzy z nich zmienną łańcuchową s;

    SprintfCformat, A ....) - podobna do poprzednio opisanej funkcji, ale dodatkowo zwraca ciąg błędu errmsg, jeśli wystąpił błąd, lub pusty ciąg w przeciwnym razie. Ciąg formatu definiuje system liczbowy, wyrównanie, cyfry znaczące, szerokość pola i inne atrybuty formatu wyjściowego. Może zawierać zwykłe znaki wraz z kwalifikatorami, znakami wyrównania itd. Funkcja fprintf zachowuje się jak analogiczna funkcja ANSI C fprintf 0, z pewnymi wyjątkami i rozszerzeniami.

Przykłady:

"SprintfC" * 0.5g ". (L + sqrt (7)) / 4)

ans =

0.91144

»SprintfC "% s","Hej")

ans =

Hej

Funkcja sscanf jest podobna do funkcji fscanf, z tą różnicą, że odczytuje dane ze zmiennej symbolicznej MATLAB, a nie z pliku.

    А = sscanf (s, format) - odczytuje dane ze zmiennej symbolicznej s, konwertuje je zgodnie z wartością format i na tej podstawie tworzy macierz A. Parametr format określa format odczytywanych danych;

    A = sscanf (s, format, size) - odczytuje ilość danych określoną przez parametr size i konwertuje je zgodnie z ciągiem formatu. Parametr size to argument określający ilość danych do odczytania. Obowiązują następujące wartości:

    • n - wczytanie n elementów do wektora kolumnowego;

      inf - wczytanie elementów do końca zmiennej symbolicznej i umieszczenie ich w wektorze kolumnowym zawierającym taką samą liczbę elementów jak w zmiennej łańcuchowej;

      Czyta tyle elementów, ile potrzeba, aby wypełnić macierz rozmiarów pp. Wypełnianie odbywa się za pomocą kolumn. Ilość n (ale nie!) Może przyjąć wartość Inf.

    Sscanf (...) - odczytuje dane ze zmiennej znakowej s, konwertuje je zgodnie z wartością formatu i zwraca do macierzy A. Parametr count jest argumentem output.argument, który zwraca liczbę pomyślnie odczytanych elementów; errmsg jest argumentem wyjściowym, który zwraca łańcuch błędu, jeśli wystąpił błąd i pusty łańcuch w przeciwnym razie. nextindex jest argumentem wyjściowym, który zawiera o jeden więcej niż liczba znaków w s.

Ciąg formatu składa się ze zwykłych znaków i specyfikatorów. Specyfikatory wskazują typ danych i zawierają znak %, opcja szerokości pola i znaki formatu. Wyjaśnienia można znaleźć w opisie funkcji fscanf.

Przykład:

„S = 4,83 3,16 22 45”;

»= Skanuj (s."% F ")

A =

4.8300 - 3.1600

22.0000

45.0000

Błąd =

następny =

Pliki specjalistyczne

Poniższe funkcje odnoszą się do niektórych pliki specjalistyczne:

    M = dlmread (filename, delimiter) — odczytuje dane z rozdzielanej ASCII nazwy pliku, używając ogranicznika, do tablicy M. Użyj "\ t" i, aby określić ogranicznik tabulacji;

    M = dlmreadCfilename.delimiter, gs) - odczytuje dane z pliku nazwapliku z ogranicznikiem ASCII, używając ogranicznika, do tablicy M, zaczynając od offsetu r (według wierszy) ic (według kolumn). Parametry r i c są liczone od zera, tak że r = 0, c = 0 odpowiada pierwszej wartości w pliku;

    M = dlmreadCfilename, deli mi ten, r, c, range) — importuje indeksowany lub nazwany zakres danych rozdzielanych w formacie ASCII. Aby użyć zakresu komórek, musisz zdefiniować parametr zakresu jako range = [TopString. Lewa kolumna. dolny wiersz, prawa kolumna].

Argumenty funkcji dlmread są następujące:

    Separator to znak oddzielający poszczególne elementy macierzy w arkuszu kalkulacyjnym ASCII;

    (,) - domyślny separator;

    R, c - komórka arkusza kalkulacyjnego, z którego pobierane są elementy macierzy, odpowiadające elementom w lewym górnym rogu tabeli;

    zakres to wektor, który definiuje zakres komórek w arkuszu kalkulacyjnym.

Polecenie dlmwrite konwertuje macierz MATLAB do pliku rozdzielanego ASCII, który można odczytać w arkuszach kalkulacyjnych:

    Dl mwrite (f i 1 ename. A. delimiter) — zapisuje macierz A w lewej górnej komórce arkusza kalkulacyjnego nazw plików, używając ogranicznika do oddzielenia elementów macierzy. Użyj „U”, aby utworzyć plik rozdzielany tabulatorami. Wszystkie elementy o wartości 0 są pomijane. Na przykład tablica pojawi się w pliku jako „1., 2” (jeśli separatorem jest przecinek):

    dlmwrite (filename, A, delimiter, r, c) - zapisuje macierz A do pliku, zaczynając od lokalizacji określonej przez r i c, używając ogranicznika;

    info = imfinfo (nazwapliku.fmt) - zwraca strukturę, której pola zawierają informacje o obrazie w pliku graficznym. Argument filename to łańcuch określający nazwę pliku graficznego, fmt to łańcuch określający format pliku. Plik musi znajdować się w bieżącym katalogu lub w katalogu określonym w ścieżce MATLAB. Jeśli imflnfo nie może znaleźć pliku o nazwie nazwapliku, szuka pliku o nazwie nazwapliku.fmt.

Tabela 19,5 pokazuje możliwe wartości argumentu fmt.

Tabela 19.5. Obsługiwane formaty graficzne i ich oznaczenia

Jeśli nazwa pliku jest plikiem TIFF lub HDF zawierającym więcej niż jeden obraz, to 1 nfo jest tablicą struktur z oddzielnym elementem (to znaczy z indywidualną strukturą) dla każdego obrazu w pliku. Na przykład informacja (3) zawierałaby wówczas informacje o trzecim obrazie w pliku. Wiele pól w informacjach zależy od konkretnego pliku i jego formatu. Jednak pierwsze dziewięć pól jest zawsze takich samych. Tabela 19.6 wymienia te pola i opisuje ich znaczenie.

Tabela 19.6. Pola struktury informacji i ich znaczenie

Pole Oznaczający
Nazwa pliku Ciąg zawierający nazwę pliku; jeśli pliku nie ma w bieżącym katalogu, wiersz zawiera pełną ścieżkę do pliku
Data modyfikacji pliku Ciąg zawierający datę ostatniej modyfikacji pliku
Rozmiar pliku Liczba całkowita wskazująca rozmiar pliku w bajtach
Format Ciąg zawierający format pliku określony przez parametr fmt; w przypadku plików JPEG i TIFF zwracana jest wartość składająca się z trzech znaków
Wersja formatu Ciąg lub liczba opisująca wersję formatu
Szerokość Liczba całkowita wskazująca szerokość obrazu w pikselach
Wzrost Liczba całkowita wskazująca wysokość obrazu w pikselach
Głębokość bitowa Liczba całkowita wskazująca liczbę bitów na piksel
Rodzaj koloru Ciąg opisujący typ obrazu: „truecolor” dla obrazu RGB, „grayscale” dla obrazu w skali szarości lub „indexed” dla indeksowanego obrazu kolorowego

    Info = imfinfo (nazwa pliku) - próbuje określić format pliku na podstawie zawartości. Przykład:

»Info = irrifinfo (" С: \ wystawa \ Internet.bmр ")

Informacje =

Nazwa pliku: „C: \ Wystawa \ Internet.bmr”

Rozmiar pliku: 481078

Format: "bmp"

FormatWersja: „Wersja 3 (Microsoft Windows 3.x)”

lub obraz truecolor (RGB) klasy uint8, polecenie imwrite zapisuje rzeczywiste wartości tablicy do pliku. Jeśli A jest klasy double, polecenie imwrite nadpisuje wartości w tablicy przed zapisem przy użyciu konwersji uint8 (round (255 * A)). Ta operacja konwertuje liczby zmiennoprzecinkowe z zakresu na 8-bitowe liczby całkowite w zakresie. Poprawne wartości dla ftnt są takie same jak dla polecenia imfinfo;

    imwrite (X, map, filename, fmt) - zapisuje indeksowany obraz znajdujący się w tablicy X i odpowiednią paletę kolorów smoły do ​​pliku filename. Jeśli X zawiera obraz uint8, polecenie imwrite zapisuje rzeczywiste wartości tablicy do pliku. Jeśli X jest podwójne, polecenie imwrite nadpisuje wartości w tablicy przed zapisem przy użyciu konwersji uintS (X-l). Paleta smoły musi być podwójnej klasy; funkcja imwrite nadpisuje wartości tar za pomocą konwersji uint8 (round (255 * mar));

    imwrite (.... nazwa_pliku) — Zapisuje obraz do nazwy pliku w formacie określonym przez rozszerzenie pliku. Rozszerzeniem może być jedna z poprawnych wartości parametru fmt;

    imwrite (....Parametr, Wartość....) definiuje parametry sterujące różnymi właściwościami pliku wyjściowego. Opcje są używane dla plików HDF, JPEG i TIFF;

    M = wklread (filename) - Wczytuje arkusz kalkulacyjny Lotusl23 (WK1) do macierzy M;

    М = wklread (filename.r.c) - odczytuje dane począwszy od komórki określonej wartościami (r, s). Parametry r i c są liczone od zera, więc r = 0, c = 0 definiują pierwszą komórkę w pliku;

    M = wklread (nazwa pliku, r, c, zakres) - Odczytuje zakres wartości określony przez zakres, gdzie zakres może mieć jedną z następujących postaci:

    • czteroelementowy wektor definiujący zakres komórek w formacie [górna linia. lewa_kolumna, dolna_linia, prawa_kolumna];

      zakres komórek zdefiniowany przez ciąg, na przykład „A1 ... C5”;

      nazwa zakresu określona jako ciąg, na przykład „Sprzedaż”.

    wklwrite (filename.M) - Zapisuje wartości macierzy M do nazwy pliku arkusza kalkulacyjnego Lotus 123 WK1;

    wklwrite (nazwa pliku, M, r, c) - zapisuje dane począwszy od komórki określonej wartościami (r, s). Parametry r i c są liczone od zera, więc r = 0, c = 0 definiuje pierwszą komórkę w arkuszu kalkulacyjnym.

Tabela 19.7 pokazuje formaty obrazów dostępne do odczytu przez funkcję imread. Listy parametrów oraz ich możliwe wartości dla funkcji imwrite zawarte są w tabeli. 19.8.

Należy zauważyć, że większość omówionych powyżej funkcji jest rzadko używana przez użytkowników. Są jednak szeroko stosowane do celów systemowych i cieszą się dużym zainteresowaniem specjalistów.

Tabela 19.7. Formaty plików i ich krótki opis

Format Warianty
BMP Nieskompresowane obrazy 1-bitowe, 4-bitowe, 8-bitowe i 24-bitowe; 4-bitowe i 8-bitowe obrazy skompresowane RLE
HDF 8-bitowe mapy bitowe z paletą kolorów lub bez; 24-bitowe mapy bitowe
JPEG Wszelkie obrazy JPEG; Obrazy JPEG z niektórymi powszechnie używanymi rozszerzeniami
PCX Obrazy 1-bitowe, 8-bitowe i 24-bitowe
Sprzeczka Dowolne obrazy TIFF, w tym! -Bitowe, 8-bitowe i 24-bitowe nieskompresowane obrazy; Obrazy 1-bitowe, 8-bitowe i 24-bitowe z kompresją packbit; Obrazy 1-bitowe z kompresją CCITT
XWD 1-bitowe i 8-bitowe mapy Zpix; XYBitmapy; 1-bitowe XYPixmapy

Tabela 19.8. Parametry używane podczas zapisu plików graficznych

Parametr Oznaczający Domyślna wartość
Opcje dla plików HDF
"Kompresja" Jedna z następujących wartości: „brak”, Vie”, „jpeg” "rle"
"Jakość" Liczba od 0 do 100; parametr jest obsługiwany dla "Kompresja" = "jpeg"; im wyższa liczba, tym wyższa jakość pliku (mniej zniekształceń pliku podczas kompresji) i większy jego rozmiar 75
„Tryb zapisu” Jedna z następujących wartości: "nadpisz", "dołącz" "przepisać"
Opcje dla plików JPEG
"Jakość" Liczba od 0 do 100; im wyższa liczba, tym wyższa jakość pliku (mniej zniekształceń podczas kompresji pliku) i większy rozmiar pliku. 75
Opcje dla plików TIFF
"Kompresja" Jedna z następujących wartości: „none”, „packbits”, „ccitt”; wartość "ccitt" jest ważna tylko dla obrazów binarnych (dwukolorowych) "ccitt" dla obrazów binarnych; "packbits" dla wszystkich innych
"Opis" Dowolny ciąg; wartość pola ImageDescription jest zwracana przez polecenie imfinfo Pusta linia
"Rezolucja" Wartość skalarna rozdzielczości w kierunkach x i y
72

Czego nowego się nauczyliśmy?

W tym samouczku nauczyliśmy się:

    Otwieraj i zamykaj pliki.

    Wykonuj operacje na plikach binarnych i sformatowanych.

    Umieść plik.

    Zastosuj wyspecjalizowane pliki.

Pliki M umożliwiają przechowywanie wielu poleceń programu MATLAB w jednym
plik, a następnie uruchom je jednym poleceniem lub za pomocą myszy.

Proste problemy możesz rozwiązać dość łatwo i poprawnie za pierwszym razem,
jednak bardziej złożone problemy zazwyczaj rozwiązuje się metodą prób i błędów - uruchamianie,
edytowanie i ponowne uruchamianie serii poleceń kilka razy z rzędu. Dopóki
w jaki sposób okno historii poleceń może być przydatne w całym tekście
pierwsze etapy tego procesu, ostatecznie znajdziesz o wiele więcej
efektywne będzie użycie plików M. Pliki M również pozwalają
podziel się swoim rozwiązaniem problemu z innymi użytkownikami programu
MATLAB i sformatuj wyniki, aby inni mogli je przeczytać. istnieje
dwa różne typy plików M: pliki skryptów M i pliki funkcji M. My
zademonstrujemy użycie obu typów plików M, podobnie jak
przedstawiamy różne rozwiązania omówionych powyżej problemów.

Pliki M to zwykłe pliki tekstowe zawierające:
Polecenia programu MATLAB. Możesz tworzyć i modyfikować te pliki,
za pomocą dowolnego edytora tekstu lub edytora tekstu, który
w stanie zapisywać pliki jako zwykły tekst w formacie ASCII. (To są
edytory takie jak Notatnik i WordPad w systemie Windows oraz emacs i vi w systemach
UNIX.) Dla większej wygody możesz użyć wbudowanego modułu Edytora
(Edytor), który można uruchomić za pomocą polecenia edycji, jest sam
(aby edytować nowy plik) lub wybierając nazwę istniejącego pliku M w
bieżący katalog. Aby uruchomić moduł Edytora, możesz również
użyj menu Plik lub dwóch skrajnych lewej ikon na panelu
narzędzia, zarówno do tworzenia nowego pliku M, jak i do otwierania już
istniejący. Kliknij dwukrotnie plik M w oknie Bieżący katalog
(Aktualny katalog) otworzy również wybrany plik w module Edytora.

M-pliki-skrypty

Plik skryptu M zawiera sekwencję poleceń programu MATLAB dla
uruchomić w określonej kolejności. Pokażemy teraz, jak skonstruować plik M.
skrypt do rozwiązania omówionego wcześniej problemu matematycznego. Tworzyć
plik zawierający następujące wiersze:

x =;

Załóżmy, że zapisałeś ten plik jako taski.m w swoim bieżącym
katalog lub jakiś katalog w Twojej ścieżce. Możesz przypisać do pliku
nazwać w jakikolwiek sposób (twój system operacyjny może mieć inną)
funkcji), ale wymagane jest rozszerzenie .t.

Możesz sprawić, by Twój program MATLAB uruchomił (lub wykonał) to
skryptu, wpisując polecenie taski w oknie poleceń. (Ty nie
w tym miejscu należy wpisać rozszerzenie .m; Program MATLAB automatycznie
dodaje rozszerzenie podczas wyszukiwania plików.) Wyświetl wyniki (ale nie
komendy użyte do obliczenia wyniku) zostaną wyświetlone w oknie
Okno poleceń Sekwencja poleceń może teraz
można łatwo zmienić, modyfikując plik M-file task1.m. Na przykład, jeśli
chcesz również obliczyć sin (0,0001) / 0,0001, możesz zmodyfikować plik M:

format długi
x =;
y = grzech (x) ./ x

a następnie uruchom zmodyfikowany skrypt, ponownie wprowadzając komendę taski.
Ale najpierw upewnij się, że zapisałeś zmiany w pliku taski; Inaczej
przypadku MATLAB nie rozpoznaje tych zmian.

  • Niektóre zmienne ustawione podczas uruchamiania plików skryptów M zostaną zapisane tak, jakbyś wprowadził te zmienne bezpośrednio w oknie poleceń. Na przykład omówiony powyżej program spowoduje w przyszłości wyświetlanie wszystkich wyników liczbowych z 15 miejscami po przecinku. Aby powrócić do formatu 5-znakowego, wprowadź krótkie polecenie format.

Tryb komórkowy

Nowe funkcje programu MATLAB 7 pozwalają na dzielenie pliku M -
skrypt na części (elementy) zwane komórkami. Jest to szczególnie przydatne
jeśli twój plik M jest długi lub jeśli zamierzasz go opublikować (ostatni
temat został omówiony w rozdziale „Publikowanie plików M”). Aby to rozpocząć
nowa komórka, wstaw wiersz komentarza (który będzie służył jako
nagłówek komórki), zaczynając ten wiersz od dwóch znaków procentowych %%. Jeśli otworzysz
M-file w module Edytor i wybierz polecenie menu Komórka => Włącz komórkę
Tryb (Komórka => Włącz tryb komórkowy), w tym przypadku pod pierwszym panelem
zostanie wyświetlony drugi pasek narzędzi. Po kliknięciu
dowolna linia w pliku M, komórka, do której należy ta linia, będzie
podświetlony na bladożółty. Możesz to obliczyć
komórki, wybierając polecenie menu Komórka => Oceń bieżącą komórkę.
bieżącą komórkę) lub klikając ikonę Oceń komórkę.
Może to być bardzo przydatne, jeśli dokonałeś zmian tylko w jednym
i nie chcę ponownie uruchamiać całego skryptu. Jest też element
menu i ikona do wykonywania operacji Oceń komórkę i zaawansuj
(Oblicz komórkę i tak dalej). Ponieważ masz włączony tryb komórkowy, możesz również
utwórz dodatkowe komórki, wybierając polecenie menu Komórka => Wstaw rozdzielacz komórek
(Komórka => Wstaw separator komórek) lub klikając ikonę% +.

Inicjalizacja M-plików-syenariuszy

Aby wyniki pliku skryptu M były odtwarzalne, skrypt musi:
być samowystarczalnym, niezależnym od innych zmiennych, które możesz
ustawić w dowolnym miejscu podczas sesji programu MATLAB pozostało z poprzedniej
należy również usunąć harmonogram obliczeń. Na przykład, jeśli zapytasz
zmienną o nazwie sin w oknie poleceń, a następnie
uruchom skrypt task1.m, otrzymasz komunikat o błędzie, jak w
obecnie sin będzie reprezentować zmienną, a nie normalną wbudowaną
funkcjonować. Mając to na uwadze, możesz wprowadzić linię wyczyść wszystko na początku pliku M-
skrypt, aby upewnić się, że poprzednie ustawienia zmiennych nie są
wpłynie na wyniki. Możesz również wpisać linię zamknij wszystko na początku
Plik skryptu M, który generuje grafikę, aby zamknąć wszystkie okna obrazów i
zaczynać od początku.
Jak wspomniano wcześniej, polecenia w pliku skryptu M nie zostaną automatycznie
wyświetlane w oknie poleceń. Jeśli chcesz
polecenia zostały wyświetlone wraz z wynikami, dodaj echo przy poleceniu do
początek skryptu (przydatne jest też dodanie polecenia echo off na końcu)
scenariusz). Wtedy wszelkie komentarze w pliku M również zostaną odzwierciedlone. Podczas uruchamiania
długi plik skryptu M, taka operacja jest przydatna do śledzenia:
które wyjście pasuje do którego wejścia.

Poniżej znajduje się wersja pliku task1.m z bardziej szczegółowymi komentarzami, w
który wyświetla zarówno dane wejściowe, jak i wyjściowe.

wyczyść wszystko% usuń stare definicje zmiennych
echo on% wyświetla dane wejściowe w oknie poleceń
format long% włącz 15-cyfrowy wyświetlacz
x =; % definiuje wartości x
y = sin (x) ./ x% oblicz żądane ilorazy
% Wartości te ilustrują fakt, że limit
% sin (x) / x gdy x zbliża się do 0 jest równe 1.
wyłącz echo

Podczas uruchamiania program MATLAB przeszukuje domyślną ścieżkę w
temat pliku skryptu M o nazwie startup.m. Jeśli utworzysz taki plik, to
zawarte w nim polecenia będą uruchamiane przy każdym uruchomieniu
Program MATLAB. Możesz użyć tego pliku do zapisania swoich ustawień,
które przenoszą się z jednej sesji na drugą, na przykład zmiany w bieżącej
katalog lub ścieżka. (Oprócz poleceń cd i addpath omówionych powyżej, możesz
możesz użyć polecenia rmpath, aby usunąć katalogi ze ścieżki.)

M-pliki-funkcje

Funkcje M-plików, w przeciwieństwie do M-plików-skryptów, pozwalają określić
wartości wejściowe podczas uruchamiania takich plików M z wiersza poleceń MATLAB
lub z innego pliku M. Jak wspomniano w poprzednim rozdziale, możesz również
użyj składni funkcji anonimowej (@) (brak w programie)
MATLAB 6 lub więcej wczesne wersje) lub wbudowane polecenie, aby ustawić własne
własne funkcje w wiersz poleceń... Jednak te metody zapewniają zadanie
działa tylko w jednym wierszu. W związku z tym pliki M są niezbędne do:
ustawianie bardziej złożonych funkcji. Podobnie jak skrypt M-pliku, funkcja M-pliku
to zwykły plik tekstowy, który można znaleźć w twoim
bieżący katalog lub gdziekolwiek w ścieżce MATLAB.

Wróćmy do omówionego powyżej problemu, w którym obliczyliśmy
niektóre wartości sin (x) / x, gdzie x = 10^b dla niektórych wartości b. oprócz
załóżmy, że chcesz znaleźć najmniejszą wartość b, dla której
sin (10 ^ b) / (10 ^ b) i że wynikiem jest 1 z dokładnością do 15 cyfr.

Poniżej znajduje się funkcja pliku M o nazwie sinelimit.m, skompilowana z celem
wyjaśnienie tego pytania:

funkcja y = granica sinusoidalna (s)
% SINELIMIT oblicza sin (x) / x dla x = 10 ^ (- b)
% gdzie b = 1, ..., c.
Formatuj długi
b = 1: c;
x = 10. ^ (-b);
y = (sin (x)./x)”;

Pierwszy wiersz pliku zaczyna się od słowa function, które identyfikuje
plik jako funkcja M-pliku. (W module edytora jest to zarezerwowane
słowo jest podświetlone na niebiesko.) Pierwsza linia pliku M określa nazwę funkcji i
opisuje zarówno przychodzące argumenty (lub parametry), jak i wartości wychodzące.
W tym przykładzie funkcja nazywa się ograniczeniem sinusoidalnym. Nazwa pliku (z wyłączeniem
extensions.t) i nazwa funkcji muszą być zgodne. Kiedy tworzysz to nowe
M-file-funkcja w nienazwanym oknie edytora i wybierz polecenie Zapisz
(Zapisz), moduł edytora sam nadaje nazwę plikowi sinelimit.m.
Funkcja w naszym przykładzie ma jeden element do wprowadzania danych, który znajduje się w pliku M
oznaczony jako s. W wyniku zwracany jest również jeden element -
wartość y, która pojawia się na końcu wykonania funkcji.
Dobrą praktyką jest dostarczenie pierwszego wiersza pliku funkcji M z jednym
lub więcej linii komentarzy wyjaśniających, co robi plik M. W którym
polecenie pomocy zostanie automatycznie pobrane ta informacja... Na przykład:

>> pomóż sinelimit

SINELIMIT oblicza sin (x) / x dla x = 10 ^ (- b)
gdzie b = 1,. ... ... , Z.

Pozostałe wiersze w pliku M definiują funkcję. W tym przykładzie b jest ustawione na
jako wektor łańcuchowy składający się z liczb całkowitych od 1 do s, a następnie x
jest obliczana z b, a na koniec y jest określane z x.

  • Zmienne używane w pliku funkcji M, takie jak b, x i y w sinelimit.m, są zmiennymi lokalnymi. Oznacza to, że w przeciwieństwie do zmiennych zdefiniowanych w pliku skryptu M, zmienne te nie są powiązane z żadną inną zmienną o tych samych nazwach, których używałeś w oknie poleceń. Program MATLAB nie zapamiętuje wartości tych zmiennych po wykonaniu funkcji M-file. Aby uzyskać więcej informacji, zobacz sekcję Zmienne w plikach M-Function w rozdziale 4.

Zauważ, że wiersze określające b, x i y kończą się kropką c
przecinek. Użycie średnika na końcu linii oznacza brak
wyjście wyników dla tych linii, czyli wynik pracy tych linii nie będzie
wyświetlane w oknie poleceń. Chociaż
przydatne może być wyświetlanie wyników obliczeń pośrednich
do debugowania, w zasadzie powinieneś pominąć wszystkie dane wyjściowe w pliku funkcji M.
Poniżej znajduje się przykład pokazujący, jak używana jest funkcja sinusoidy:

»Limit sinusoidalny (5)
ans =
0.99833416646828
0.99998333341667
0.99999983333334
0.99999999833333
0.99999999998333

Żadna z wartości b od pierwszego do piątego nie daje pożądanego wyniku
wynik 1 z dokładnością do 15 miejsc po przecinku. Sądząc po wynikach, można mieć nadzieję
znajdź odpowiedź na poprzednio zadane pytanie, wpisując polecenie sinusoida A0).
Spróbuj!

Dlatego z powyższego możemy wywnioskować, że trzeba dużo oglądać Dodatkowe informacje i alternatywy!

Odniesienie do właściwości obiektu graficznego

Standardowe okna dialogowe.

Funkcje do tworzenia okien dialogowych

MATLAB definiuje 15 funkcji do tworzenia standardowych okien dialogowych. Wygląd okien dialogowych można dostosować, określając argumenty wejściowe tych funkcji. Poniżej znajdują się przykłady okien dialogowych i nazwy odpowiadających im funkcji wraz z ich przeznaczeniem.

Okna dialogowe wiadomości:

errordlg - Tworzy okno dialogowe z komunikatem o błędzie;

helpdlg - tworzy okno dialogowe do wyświetlania informacji;

warndlg - Tworzy okno dialogowe ostrzeżenia;

msgbox - tworzy okno dialogowe do wyświetlania wiadomości.

Okno dialogowe potwierdzenia(funkcja questdlg)

Okno dialogowe do wprowadzania informacji(funkcja inputdlg)

Okno dialogowe do wyboru z listy(funkcja listdlg)

Okna dialogowe do ustawiania opcji drukowania

pagesetupdlg — wyświetla wielostronicowe okno dialogowe do ustawiania parametrów arkusza i sposobu drukowania zawartości okna graficznego;

printdlg — wyświetla okno dialogowe wyboru opcji drukowania i ustawień drukarki.

Otwórz plik i zapisz okna dialogowe

uigetfile - wyświetla okno dialogowe otwierania pliku

uiputfile - wyświetla okno dialogowe zapisywania pliku

Okno dialogowe wyboru katalogu(funkcja uigetdir)

Okno dialogowe wyboru czcionki(funkcja uisetfont)

Okno dialogowe wyboru koloru(funkcja uisetcolor)

Pasek postępu(funkcja paska oczekiwania)

Oprócz wymienionych funkcji dostępna jest funkcja dialogowa służąca do tworzenia pustego okna graficznego. Właściwości tego okna graficznego można ustawić za pomocą argumentów wejściowych funkcji okna dialogowego.

Rozważmy użycie standardowych okien dialogowych na przykładzie okna otwartego pliku.

Przykładowa aplikacja myview z oknem otwierania pliku

Stwórzmy aplikację myview za pomocą interfejs graficzny użytkownika, który umożliwia przeglądanie plików graficznych. Okno uruchomionej aplikacji pokazano na ryc. 1. Naciśnięcie przycisku Otwórz obraz wywołuje standardowe okno dialogowe Wybierz plik do otwarcia. Wybrany plik graficzny jest wyświetlany w oknie aplikacji. Kliknięcie przycisku Zamknij obraz powoduje wyczyszczenie okna aplikacji myview.

Ryż. 1. Okno aplikacji myview.

W środowisku GUIDE, w pustym oknie aplikacji, umieść osie i dwa przyciski, jak pokazano na rysunku 2. W Inspektorze właściwości oznacz lewy przycisk etykietą btnOpen i ustaw jego właściwość String na Open Image. Podobnie dla prawego przycisku: tag - btnClose i String - Zamknij obraz.

Osie są potrzebne do wyświetlania obrazu za pomocą funkcji obrazu. Użyjemy niskopoziomowego wywołania funkcji obrazu, która przyjmuje kierunek przeciwny do osi. tak aby rysunek nie był do góry nogami. Więc w inspektorze właściwości zmień kierunek osi tak ustawiając właściwość osi YDir na odwróconą. Aby ukryć linie siatki i linie osi, ustaw osie jako niewidoczne, wyłączając ich właściwość Widoczny.

Ryż. 2. Przygotowanie okna aplikacji w środowisku GUIDE.

Zapisz aplikację jako myview i zaprogramuj zdarzenia wywołania zwrotnego dla przycisków Otwórz obraz i Zamknij obraz.

Po kliknięciu przez użytkownika na Open Image powinno pojawić się okno dialogowe otwierania pliku, a po wybraniu pliku obraz powinien zostać wyświetlony na osiach. Użyjmy standardowego okna dialogowego otwierania pliku utworzonego przez funkcję uigetfile. Najprostsze odniesienie do tego jest następujące:

Plik Uiget

Jeśli użytkownik wybrał plik i zamknął okno, klikając znajdujący się w nim przycisk Otwórz, to pierwszy argument wyjściowy Nazwa_pliku zwraca nazwę pliku (z rozszerzeniem), a drugi Nazwa_ścieżki zwraca ścieżkę do pliku. Jeżeli użytkownik nie wybrał pliku (kliknął Anuluj, lub zamknął okno przyciskiem z krzyżykiem na tytule okna, lub kliknął ), to zmienna FileName będzie równa zero. Więc następne kroki zależą od wartości FileName.

Jeśli plik został wybrany, powinieneś

1) tworzą pełną nazwę pliku;

3) wyświetlić obraz na osi za pomocą funkcji obrazu.

Jeśli plik nie został wybrany, nie musisz nic robić.

Zdarzenie Callback przycisku Zamknij obraz może składać się tylko z jednego operatora — wywołania funkcji cla w celu wyczyszczenia osi.

Zaprogramuj podfunkcje zdarzenia wywołania zwrotnego przycisków Otwórz obraz i Zamknij obraz w następujący sposób.

Funkcja btnOpen_Callback (hObject, eventdata, handles)% Obsłuż zdarzenie Callback przycisku Otwórz obraz% Pobierz nazwę i ścieżkę do pliku = uigetfile; % Sprawdzenie, czy plik został zaznaczony, jeśli FileName ~ = 0% Formowanie pełnej ścieżki do pliku FullName =; % Czytanie obrazu z pliku graficznego Pict = imread (FullName); % Wyświetlanie obrazu na osi obrazu ("CData", Pict) funkcja zakończenia btnClose_Callback (hObject, eventdata, handles)% Obsługa zdarzenia Callback przycisku Zamknij obraz% Wyczyszczenie osi cla

Uruchom aplikację myview. Po kliknięciu przycisku Otwórz obraz pojawia się okno dialogowe Wybierz plik do otwarcia. Jednak pliki graficzne nie są widoczne w polu wyświetlającym zawartość bieżącego folderu. Dzieje się tak, ponieważ domyślnie filtr plików (lista rozwijana Pliki typu) zawiera ciąg „Wszystkie pliki MATLAB” i widoczne są tylko pliki z rozszerzeniami akceptowanymi przez MATLAB. Oczywiście za każdym razem, gdy otwierasz plik graficzny, wybierz wiersz „Wszystkie pliki (*. *)” z listy rozwijanej Pliki typu, aby wyświetlić wszystkie pliki w bieżącym folderze. Ale znacznie lepiej jest natychmiast utworzyć okno dialogowe otwierania pliku skonfigurowane tak, aby niektóre rozszerzenia... Na przykład, aby wyświetlić pliki z rozszerzeniami bmp i jpg, odwołaj się do funkcji uigetfile z argumentem wejściowym - łańcuchem, w którym szablony z wymaganymi rozszerzeniami * .bmp i * .jpg są zapisywane oddzielone średnikami:

Uigetfile ("*. Bmp; *. Jpg");

Zmień wywołanie na uigetfile w podfunkcji btnOpen_Callback na powyższe i upewnij się, że lista rozwijana Pliki typu w oknie dialogowym otwierania pliku zawiera tylko dwie linie: "* .bmp; *. Jpg" (domyślnie) i "Wszystkie pliki (*. *)".

Funkcja uigetfile pozwala na bardziej elastyczną kontrolę nad ustawieniami filtrów plików. Przyjrzymy się im w części poświęconej opisowi funkcji tworzenia standardowych okien dialogowych. Omówmy teraz, jak zaimplementować możliwość wybierania wielu plików jednocześnie w standardowym oknie dialogowym otwierania plików.

Wybierz wiele plików w oknie dialogowym otwierania plików. Wymiana danych między podfunkcjami aplikacji GUI.

W tej sekcji przyjrzymy się dwóm pytaniom:

1) jak zorganizować wybór kilku plików w standardowym oknie otwierania plików i wczytać ich zawartość do odpowiedniej tablicy;

Odpowiedź na pierwsze pytanie jest prosta. Konieczne jest wywołanie funkcji uigetfile z dodatkową parą argumentów wejściowych "MultiSelect" i "on":

Uigetfile (..., "MultiSelect", "włączone")

W zależności od wyboru użytkownika argumenty wyjściowe będą następujących typów.

  • Jeśli użytkownik wybrał wiele plików w oknie dialogowym otwierania pliku (poprzez wybór myszy lub kliknięcie i przytrzymanie lub ), nazwa_pliku stanie się tablicą komórek, w której każda komórka będzie zawierała wiersz z nazwą pliku (i rozszerzeniem), a nazwa_ścieżki będzie wierszem zawierającym ścieżkę do tych plików (ścieżka do wszystkich plików jest taka sama, stąd nazwa_ścieżki nie powinna być tablicą komórek ).
  • Jeśli użytkownik wybrał jeden plik w oknie dialogowym otwierania pliku, wówczas nazwa_pliku będzie wierszem z nazwą pliku (z rozszerzeniem), a nazwa_ścieżki będzie wierszem ze ścieżką do pliku (patrz poprzedni rozdział).
  • Jeśli nie dokonano żadnego wyboru, nazwa pliku ma wartość zero.

Drugie pytanie (komunikacja między podfunkcjami obsługi zdarzeń) często pojawia się podczas programowania aplikacji GUI. Rozwiązuje się to w następujący sposób. Dane, które należy zapisać podczas wykonywania jakiejś podfunkcji, są zapisywane w polach struktury uchwytów. Następnie, w tej samej podfunkcji, struktura uchwytów jest zapisywana za pomocą funkcji guidata:

guidata (gcbo, uchwyty)

Aby uzyskać dane w innej podfunkcji, odwołaj się do odpowiedniego pola struktury uchwytów. Na przykład aplikacja posiada dwie podfunkcje btnA_Callback i btnB_Callback. Podczas wykonywania podfunkcji btnA_Callback została utworzona tablica liczbowa, która będzie potrzebna w podfunkcji btnB_Callback. Wtedy te podfunkcje powinny wyglądać następująco.

Funkcja btnA_Callback (hObject, eventdata, handles). ... ... uchwyty.dane =; guidata (gcbo, uchwyty). ... ... funkcja btnB_Callback (hObject, eventdata, uchwyty). ... ... pasek (uchwyty.dane). ... ...

Przyjrzyjmy się aplikacji myview stworzonej w poprzednim rozdziale i rozszerzmy jej możliwości. Zmodernizowana aplikacja powinna umożliwiać jednoczesne otwieranie kilku plików graficznych i przeglądanie ich jeden po drugim. Po wybraniu kilku plików graficznych w oknie aplikacji wyświetlany jest tylko jeden, a kliknięcie przycisku (nazwijmy go Dalej) prowadzi do pojawienia się kolejnego obrazu.

W środowisku GUIDE dodaj przycisk ze znacznikiem btnNext i napisem Next obok szablonu okna aplikacji myview (patrz Rys. 2 z poprzedniego rozdziału) (patrz Rys. 1). W Inspektorze właściwości wyłącz go, wyłączając właściwość Włącz. Będzie on dostępny podczas działania aplikacji, jeśli użytkownik wybrał kilka plików graficznych do przeglądania.

Ryż. 1. Okno aplikacji Myview z przyciskiem Dalej

Teraz należy zmienić podfunkcję btnOpen_Callback obsługującą zdarzenie Callback przycisku Open Image i zaprogramować zdarzenie Callback przycisku Next. Podczas przetwarzania wyboru plików (lub pliku) przez użytkownika w oknie dialogowym otwierania pliku, należy wziąć pod uwagę wszystkie możliwości: zaznaczonych jest kilka plików, zaznaczany jest tylko jeden plik, nie są wybierane żadne pliki.

Jeśli zaznaczonych jest kilka plików graficznych (tzn. tablica FileName jest tablicą komórek), to wczytujemy obrazy do tablicy komórek i zapisujemy w polu Pict struktury uchwytów. Liczba otwartych plików graficznych (tj. długość tablicy FileName) zostanie zapisana w polu ImageNum struktury uchwytów. Dodatkowo potrzebujemy numer bieżącego obrazu, aby zapamiętać, które utworzymy pole CurImage struktury uchwytów.

Po otwarciu plików w oknie aplikacji wyświetlimy zawartość pierwszego z nich. Jeśli kilka plików zostało otwartych, to udostępnimy przycisk Dalej, a jeśli tylko jeden, to sprawimy, że Dalej będzie niedostępny.

Podczas przetwarzania zdarzenia Callback przycisku Dalej wyczyść osie i wyświetl na nich następujący obraz. Jeśli bieżący obraz jest ostatnim, zostanie wyświetlony pierwszy.

Poniżej znajduje się tekst podfunkcji btnOpen_Callback i btnNext_Callback. Podfunkcja btnClose_Callback pozostaje niezmieniona.

Funkcja btnOpen_Callback (hObject, eventdata, handles)% Obsłuż zdarzenie Callback przycisku Otwórz obraz% Pobierz nazwy plików i ścieżki do nich (lub jedną nazwę pliku i ścieżkę do niego) = uigetfile ("*. Bmp; *. Jpg", „MultiSelect” , „wł.”); % Dowiedz się, ile plików zostało wybranych, jeśli iscell (NazwaPliku)%NazwaPliku jest tablicą komórek, więc kilka plików zostało wybranych% zapisz w polu NumerObrazu struktury uchwytów liczbę wybranych uchwytów plików.NumerObrazu = długość (NazwaPliku ); % Dla każdego pliku w pętli utwórz pełną nazwę% i wczytaj jego zawartość do k-tej komórki tablicy komórek,% która jest przechowywana w polu Pict struktury uchwytów handles.Pict =; % najpierw robimy tablicę pustą dla k = 1: handles.ImageNum FullName =; handles.Pict (k) = imread (FullName); end% Pierwszy obraz jest aktualny handles.CurImage = 1; % Wyświetlamy go na obrazie osi ("CData", handles.Pict (handles.CurImage))% Zapisz strukturę uchwytów, aby uzyskać do niej dostęp w podfunkcji btnNext_Callback guidata (gcbo, handles)% Udostępnij zestaw przycisk Next (uchwyty). btnNext, "Enable "," on ") else% Wybrano tylko jeden plik lub żaden, jeśli FileName ~ = 0% Wybrano jeden plik, tworzymy do niego pełną ścieżkę FullName =; % Wczytujemy obrazek do zmiennej Pict (struktura uchwytów nie jest potrzebna) Pict = imread (FullName); % Wyświetl obrazek na osi obrazu ("CData", Pict)% Wyłącz przycisk Dalej set (handles.btnNext, "Enable", "off") end end funkcja btnNext_Callback (hObject, eventdata, handles)% Obsługa Callback zdarzenie przycisku Otwórz obraz % Sprawdzanie, który obraz jest bieżący, jeśli handles.CurImage

Notatka

Aplikację myview można dalej ulepszać, np. po zaznaczeniu plików i przed wyświetleniem pierwszego, dobrze jest wyczyścić osie. Należy również wziąć pod uwagę, że użytkownik wybrał pliki niegraficzne.

Odniesienie do funkcji tworzenia okien dialogowych.

Utwórz okno dialogowe błędu - errordlg

Funkcja errordlg służy do tworzenia standardowego okna dialogowego błędu. Najpopularniejsza opcja połączenia

h = errordlg („Tekst wiadomości”, „Tytuł okna”).

H przechowuje wskaźnik do wygenerowanego okna graficznego z komunikatem o błędzie. na przykład

h = errordlg („Dzielenie przez zero”, „Kalkulator”);

Prowadzi do takiego okna ze wskaźnikiem h:

Okno pozostaje na ekranie do momentu zamknięcia przyciskiem OK, klawiszem, przyciskiem z krzyżykiem na tytule lub poprzez menu kontekstowe tytułu.

Okno komunikatu o błędzie nie jest modalne (pozwala na przejście do innych okien aplikacji MATLAB). Aby było modalne, po utworzeniu okna za pomocą funkcji errordlg ustaw właściwość WindowStyle okna graficznego na „modal”: set (h, „WindowStyle”, „modal”)

Innym sposobem utworzenia modalnego okna komunikatu o błędzie jest użycie funkcji msgbox, która jest opisana poniżej.

Rozmiar okna dobierany jest automatycznie w zależności od długości linii tekstu, zawijane są bardzo długie linie. Aby otrzymać wiadomość wieloliniową podzieloną na linie w określony sposób, musisz określić tablicę komórek składających się z łańcuchów:

h = errordlg (("Niewłaściwy format danych"; "lub"; "niezgodne dane"), "dlgname")

Kolejne tworzenie okien z komunikatami o błędach o tym samym tytule:

h = errordlg („Dzielenie przez zero”, „Kalkulator”); ... h = errordlg ("Nieprawidłowa operacja", "Kalkulator");

skutkuje różnymi oknami z komunikatami o błędach. Aby aktywować okno (pozycja nad innymi oknami) i wyświetlić w nim nową wiadomość, zamiast tworzyć nowe okno, należy wywołać errordlg z trzecim argumentem „on”:

h = errordlg („Dzielenie przez zero”, „Kalkulator”); ... h = errordlg („Nieprawidłowa operacja”, „Kalkulator”, „wł.”); % aktywacji starego okna

Oczywiście, jeśli stare okno zostało zamknięte, to h = errordlg (..., "on") po prostu tworzy nowe.

Po wyświetleniu okna dialogowego z komunikatem o błędzie aplikacja kontynuuje działanie. Często pojawia się pytanie: jak wstrzymać wykonanie do momentu zamknięcia okna dialogowego. Odbywa się to za pomocą funkcji waitfor, która wstrzymuje działanie aplikacji do momentu usunięcia określonego obiektu graficznego. Wskaźnik do tego obiektu (w naszym przypadku okno komunikatu o błędzie) jest określony jako argument wejściowy funkcji waitfor:

h = errordlg („Dzielenie przez zero”, „Kalkulator”); set (h, "WindowStyle", "modal") waitfor (h) a = 1; ....

Utwórz okno dialogowe ostrzeżenia - warndlg

Funkcja warndlg działa w podobny sposób jak errordlg (patrz wyżej), ale nie ma opcji wywołania jej z trzecim argumentem wejściowym "on". Na przykład,

daje takie okno ze wskaźnikiem h

Okno ostrzeżenia różni się od okna komunikatu błędu tylko ikoną:

Ponowne wywołanie warndlg z tymi samymi argumentami wejściowymi tworzy nowe okno, nawet jeśli stare nie zostało jeszcze zamknięte.

Utwórz okno dialogowe pomocy - helpdlg

Funkcja helpdlg działa w podobny sposób jak warndlg (patrz wyżej). Na przykład,

h = warndlg („Plik jest nieaktualny”, „Preprocesor”)

skutkuje takim oknem ze wskaźnikiem h:

które różni się od okienka ostrzegawczego jedynie piktogramem:

Ponowne wywołanie helpdlg z tym samym tytułem okna aktywuje stare okno, jeśli nie zostało zamknięte. Jeśli był zamknięty, tworzony jest nowy.

Wiele linii tekstu komunikatu, modalność okna i zawieszenie wykonywania aplikacji do czasu zamknięcia okna są wykonywane w taki sam sposób, jak przy wywołaniu errordlg.

Utwórz skrzynkę wiadomości - ogólna funkcja msgbox

Funkcja msgbox umożliwia tworzenie omówionych powyżej okien błędów, ostrzeżeń i pomocy. Aby uzyskać tekst wielowierszowy, jako pierwszy argument należy określić tablicę komórek z ciągami. Dodatkowo istnieje możliwość stworzenia okna z dowolną ikoną. Kontrolowanie modalności okna i tworzenie nowego o tym samym tytule odbywa się za pomocą argumentów wejściowych msgbox. Funkcja msgbox zwraca wskaźnik do tworzonego okna.

h = msgbox ("Bardzo poważny błąd!", "Program", "błąd")- tworzy okno z komunikatem o błędzie i standardową ikoną (podobnie jak errordlg).

c = („Bardzo poważny błąd!”; „Nie mów nikomu”); h = msgbox (c, "Program", "błąd")- podobny do poprzedniego, ale wiadomość składa się z dwóch linijek.

h = msgbox ("Ostatnie ostrzeżenie!", "Program", "ostrzeżenie")- tworzy okno z ostrzeżeniem i standardową ikoną (podobnie jak warndlg).

h = msgbox ("Pomóż sobie...", "Program", "pomoc")- tworzy okno z informacjami pomocy i standardową ikoną (podobną do helpdlg).

h = msgbox („Tu nie ma obrazu”, „Program”, „brak”)- tworzy okno z informacją tekstową bez ikony.

h = msgbox („Tekst wiadomości”, „Tytuł okna”, „niestandardowy”, obraz, mapa kolorów)- tworzy okno z ikoną użytkownika, na przykład:

= odczyt ("phone.gif"); % odczytanie obrazka i mapy kolorów z pliku h = msgbox ("Ktoś do Ciebie dzwoni", "Telefon", "niestandardowy", pic, mapa)

skutkuje takim oknem

Ostatni argument wejściowy („modalny”, „niemodalny” lub „zamień”) steruje wyglądem okna i sposobem wyświetlania nowego okna o tym samym tytule. Jeśli nie określono metody wyświetlania nowego okna, to zawsze tworzone jest nowe okno.

Przykłady:

h = msgbox ("Bardzo poważny błąd!", "Program", "modal")- wyświetla modalne standardowe okno z komunikatem o błędzie

h = msgbox („Ktoś do Ciebie dzwoni”, „Telefon”, „custom”, pic, map, „modal”)- wyświetla okno modalne z zadanym obrazkiem dla piktogramu i mapą kolorów.

h = msgbox ("Bardzo poważny błąd!", "Program", "error", "replace")- zastępuje poprzednie okno tytułem Program, jeśli nie ma to tworzy nowe. Podczas wykonywania poleceń

h = msgbox („Bardzo poważny błąd!”, „Program”, „error”) h = msgbox („Coś jest dziwne”, „Program”, „warn”, „replace”)

drugie okno zastąpi pierwsze.

Okno dialogowe potwierdzenia - funkcja questdlg

Funkcja questdlg tworzy modalne okno dialogowe potwierdzenia z wieloma przyciskami. Podczas tworzenia okna każdy z przycisków może mieć fokus. W argumencie wyjściowym funkcja questdlg zwraca wybór użytkownika (ciąg z nazwą wciśniętego przycisku) lub pusty ciąg, jeśli okno zostało zamknięte bez kliknięcia żadnego przycisku. Aby uzyskać tekst wielowierszowy, użyj tablicy komórek składającej się z ciągów. Jeśli określono długą linię, zostanie ona automatycznie zawinięta.

Przykłady:

button = questdlg („Czy na pewno?”)- utworzenie standardowego okna potwierdzenia z przyciskami Tak, Nie, Anuluj. Przycisk Tak wyostrzony (domyślnie).

button = questdlg („Czy na pewno?”, „Program”)- utworzenie standardowego okna potwierdzenia z tytułem i przyciskami Tak, Nie, Anuluj.

button = questdlg („Czy na pewno?”, „Program”, „Nie”)- utworzenie standardowego okna potwierdzenia z tytułem i przyciskami Tak, Nie, Anuluj. Fokus znajduje się na przycisku Nie.

button = questdlg („Czy na pewno?”, „Zaprogramuj”, „Tak”, „Być może”, „Być może”)- stworzenie standardowego okna potwierdzenia z tytułem i dwoma przyciskami Tak i Może. Fokus znajduje się na przycisku Może.

button = questdlg („Czy na pewno?”, „Zaprogramuj”, „Tak”, „Nie”, „Nie wiem”, „Nie wiem”, „Nie”)- stworzenie standardowego okienka potwierdzenia z tytułem i trzema przyciskami Tak, Nie i nie wiem. Nacisk jest na przycisk Nie.

Okno dialogowe do wprowadzania informacji (funkcja inputdlg)

Funkcja inputdlg tworzy okno dialogowe z określoną liczbą wierszy wejściowych. Liczba wierszy wejściowych i ich tytuły są określane za pomocą argumentów wejściowych. W oknie znajdują się przyciski OK i Anuluj. Jeśli użytkownik kliknie OK, to argumentem wyjściowym funkcji inputdlg jest tablica komórek z informacjami wprowadzonymi przez użytkownika w wierszach wejściowych. Jeśli okno zostało zamknięte przez kliknięcie przycisku Anuluj lub w jakikolwiek inny sposób (z wyjątkiem przycisku OK), to argumentem wyjściowym jest pusta tablica komórek.

Przykłady:

M = inputdlg (("CZAS" "WARTOŚCI"))- tworzy okno dialogowe

Jeżeli np. w wierszu CZAS użytkownik wpisał 0,1 0,3 0,55 4,5, a w wierszu WARTOŚCI 2,3 9,55 2,1 0,7 i kliknął OK, to tablica komórek M będzie miała następujące wartości.

M = "0,1 0,3 0,55 4,5" "-2,3 9,55 2,1 0,7"

Możesz użyć str2num, aby przekonwertować je na wektory numeryczne:

czas = str2num (M (1)) val = str2num (M (2))

M = inputdlg (("CZAS" "WARTOŚCI"), "Dane wejściowe") - tworzy okno dialogowe zatytułowane Dane wejściowe.

Aby móc wprowadzić tekst wielowierszowy, musisz określić trzeci argument wejściowy - liczbę wierszy w każdym obszarze wejściowym:

M = inputdlg (("macierz A" "macierz B"), "dane wejściowe", 3)- jeśli trzeci argument jest liczbą większą niż jeden, to wszystkie obszary wejściowe mają tę samą wysokość i mają paski przewijania.

Jeśli wprowadzanie zostało zakończone przez kliknięcie przycisku OK, to każda komórka tablicy M zawiera tablicę znaków. Tablica znaków zawiera tyle wierszy, ile zostało wprowadzonych w odpowiednim obszarze wprowadzania.

M = inputdlg (("wektor A" "Macierz B"), "Dane wejściowe")- aby ustawić wysokość obszarów wejściowych osobno, jako trzeci argument wejściowy należy podać liczbę wierszy każdego obszaru wejściowego w wektorze kolumny:

M = inputdlg (("wektor A" "Macierz B"), "Dane wejściowe")- aby ustawić długość obszarów wejściowych w znakach (w tym przypadku 100 znaków), trzecim argumentem wejściowym musi być macierz:

M = inputdlg (("Nazwa" "Rok"), "Info", (char ("Jan", "Kowalski") "1990"))- aby otrzymać okno z wypełnionymi polami (do podpowiadania użytkownikowi formatu wejściowego), podaj czwarty argument wejściowy. Musi to być tablica komórek o takim samym rozmiarze jak pierwszy argument wejściowy:

M = inputdlg (("Nazwa" "Rok"), "Info", (char ("Jan", "Kowalski") "1990"), "on")- ostatni piąty argument wejściowy "on" oznacza, że ​​użytkownik może zmienić rozmiar okna dialogowego.

Okno dialogowe do wyboru z listy - funkcja listdlg

Funkcja listdlg tworzy okno dialogowe z polem listy z określonych ciągów i przycisków do zaznaczania i odznaczania. Linie listy są określone przez tablicę komórek. Obsługiwany jest wielokrotny wybór elementów listy. W argumentach wyjściowych zwracane są: Wybór - liczba lub wektor z numerami wybranych linii oraz ok - informacja o tym, czy wybór został zakończony naciśnięciem przycisku OK (ok = 1), czy okno zostało zamknięte w innym sposób (ok = 0). Jeśli ok = 0, to Selection jest pustą tablicą. Domyślnie można wybrać kilka elementów listy (klikając myszą i przytrzymując klawisz Ctrl), a przycisk Zaznacz wszystko umożliwia zaznaczenie wszystkich elementów.

= listdlg („ListString”, („Liniowy”; „Cwadratowy”; „Sześcienny”))- tworzy okno dialogowe wyboru z listą trzech linii: Liniowy, Kwadratowy, Sześcienny. Jeśli użytkownik wybrał np. Kwadratowy i nacisnął przycisk OK, to Wybór = 2 i ok = 1. Jeśli użytkownik wybrał Liniowy i Sześcienny i nacisnął przycisk OK, to Wybór = i ok = 1 itd.

Dostęp do funkcji listdlg można uzyskać w postaci ogólnej:

= listdlg („ListString”, tablica komórek z ciągami, param1, val1, param2, val2, ...)

Parametry i ich możliwe wartości są następujące:

  • „SelectionMode” - tryb zaznaczania wierszy na liście, wartości: „pojedynczy” (aby wybrać tylko jeden wiersz) lub „wiele” (domyślnie, aby wybrać wiele wierszy);
  • "ListSize" - rozmiar obszaru listy w pikselach, wartość ustalana jest przez wektor [szerokość-wysokość] (domyślnie);
  • "InitialValue" - początkowy wybór wierszy, wartością jest wektor z numerami wierszy, które zostaną wybrane w momencie wyświetlenia listy wartości (domyślnie 1);
  • "Nazwa" - tytuł okna, wartość ustalana jest ciągiem (domyślnie pusty ciąg);
  • "PromptString" - tekst nad listą, wartości: ciąg lub tablica ciągów lub komórki z ciągów (dla tekstu wielowierszowego). Wartość domyślna to pusta tablica komórek.
  • „OKString” - napis na przycisku wyboru i zamknięcia okna, wartość jest ciągiem (domyślnie „OK”);
  • "CancelString" - napis na przycisku zamykający okno bez zaznaczania, wartość jest ciągiem (domyślnie "Anuluj");
  • "uh" - wysokość przycisków okna, wartość ustawiana w pikselach (domyślnie 18);
  • "fus" - odległość pomiędzy przyciskami a listą, wartość ustawiana jest w pikselach (domyślnie 18);
  • "ffs" to odległość od krawędzi okna do listy, wartość jest ustawiona w pikselach (domyślnie 8).
Na przykład polecenie

= listdlg ("ListString", ("Linear"; "Quadratic"; "Cubic"), ... "Name", "Aproximation", "ListSize", "PromptString", "Select method", "fus", 5)

powoduje utworzenie następującego pola kombi:

Okno dialogowe do ustawiania parametrów arkusza i sposobu drukowania zawartości okna graficznego - funkcja pagesetupdlg

pagesetupdlg — wywołanie okna dialogowego Ustawienia strony dla bieżącego okna graficznego (jeśli nie ma okna, tworzone jest nowe).

pagesetupdlg (hF) — Wywołuje okno dialogowe Ustawienia strony dla okna graficznego ze wskaźnikiem hF.

Ustawienia dokonane w oknie dialogowym Ustawienia strony wpływają na odpowiednie właściwości okna graficznego: PaperSize, PaperType, PaperPozition itp.

Funkcja pagesetupdlg pozwala skonfigurować parametry tylko jednego okna graficznego, tj. hF nie może być wektorem wskaźników. Aby jednocześnie skonfigurować główne parametry kilku okien graficznych, użyj funkcji pagedlg, której argumentem wejściowym może być wektor wskaźników do okien graficznych.

Okno Ustawienia strony jest modalne; wykonywanie aplikacji jest wstrzymywane do czasu zamknięcia okna.

Okno dialogowe wyboru opcji drukowania i konfiguracji drukarki - funkcja printdlg

printdlg - wywołanie standardowego okna dialogowego Windows do drukowania bieżącego okna graficznego (jeśli nie ma okna, tworzone jest nowe).

printdlg (hF) - wywołuje standardowe okno dialogowe Windows do drukowania okna graficznego ze wskaźnikiem hF.

printdlg („- crossplatform”, hF) — Wywołuje okno dialogowe MATLAB Print, aby wydrukować okno graficzne ze wskaźnikiem hF.

Okno dialogowe drukowania jest modalne, aplikacja jest wstrzymana do momentu zamknięcia okna.

Okno dialogowe otwierania pliku - funkcja uigetfile

= plik uiget- wyświetla okno dialogowe otwierania pliku z zawartością bieżącego katalogu. Filtr plików jest ustawiony na WSZYSTKIE pliki MATLAB, co powoduje wyświetlanie tylko plików z rozszerzeniami, które obsługuje MATLAB. Na liście rozwijanej Pliki typu można wybrać tylko M-pliki, tylko okna graficzne itp. lub wszystkie pliki.

Jeśli użytkownik wybrał plik (klikając ikonę pliku i wciskając przycisk Otwórz lub klikając dwukrotnie ikonę pliku lub wpisując nazwę pliku w wierszu Nazwa pliku i naciskając przycisk Otwórz), to FName zawiera wiersz z nazwą i rozszerzeniem pliku, a PName jest ścieżką do pliku. Jeżeli użytkownik nie wybrał pliku i zamknął okno, to FName = 0 i PName = 0. Po wywołaniu funkcji uigetfile sprawdź, czy plik został wybrany. Jeśli tak, połącz te wiersze, aby uzyskać pełną nazwę pliku:

= plik uiget; if ~ isequal (FName, 0) FullName = strcat (PName, FName); % dalszego odczytu danych z końca pliku

Filtr plików określony w pierwszym argumencie wejściowym funkcji uigetfile, na przykład

= uigetfile ("*. txt");

tworzy okno dialogowe otwierania pliku, którego lista Pliki typu zawiera dwa ciągi: "* .txt" i "Wszystkie pliki (*. *)". Możesz określić więcej niż jedno rozszerzenie, ale wtedy musisz użyć tablicy komórek z ciągów:

= uigetfile (("*. txt"; "* .dat"));

Aby umieścić opisy typów plików na liście Pliki typu, musisz określić tablicę komórek złożoną z dwóch kolumn. Każdy wiersz zawiera rozszerzenie i opis pliku (podczas gdy wiersz „Wszystkie pliki (*. *)” nie jest dodawany do listy Pliki typu w oknie dialogowym otwierania pliku):

Filter = („*. Txt”, „Pliki tekstowe (* .txt)”; „* .dat”, „Pliki danych (* .dat)”; „* .res”, „Wyniki (* .res)”) ; = uigetfile (filtr);

Jako filtr może być również ciąg z nazwą pliku, wtedy znajduje się on w wierszu Nazwa pliku, gdy pojawia się okno dialogowe otwierania pliku, a jego rozszerzenie jest przyjmowane jako rozszerzenie domyślne i pojawia się na liście Pliki typu wraz z „Wszystkie pliki (*. *)”.

Jeśli chcesz dowiedzieć się, jaki typ plików użytkownik wybrał z listy Pliki typu, powinieneś odwołać się do uigetfile z trzema argumentami wyjściowymi:

= uigetfile (filtr);

FilterIndex rejestruje numer typu pliku.

Do zadania własny tytuł okna otwierając plik (zamiast Wybierz plik do otwarcia), funkcja uigetfile jest wywoływana z drugim argumentem wejściowym:

= uigetfile (Filtr, "Otwórz plik");

Aby umieścić określoną nazwę pliku w wierszu Nazwa pliku podczas tworzenia otwartego okna pliku, musisz określić go w trzecim argumencie wejściowym (nazwa pliku może być pełna):

= uigetfile (Filtr, "Otwórz plik", "input.txt")

W ten sposób możesz wyświetlić zawartość dowolnego folderu, na przykład katalogu głównego dysku D:

= uigetfile (Filtr, "Otwórz plik", "d: \")

Notatka
Jeśli chcemy otworzyć pliki MATLAB zgodnie z sugestiami domyślnego pliku uigetfile, ale ustawić własny tytuł okna (oraz domyślny folder lub plik w oknie dialogowym otwierania pliku), to nie można pominąć pierwszego argumentu wejściowego, filtru. Powinien to być pusty wiersz:

= uigetfile ("", "Otwórz plik", "d: \");

Aby użytkownik mógł wybierz wiele plików, powinieneś wywołać uigetfile w jeden z następujących sposobów:

= uigetfile ("MultiSelect", "on"); lub = uigetfile ("*. dat", "MultiSelect", "on"); lub = uigetfile ("*. dat", "Otwórz plik", "d: \", "MultiSelect", "on")

Jeśli użytkownik wybrał wiele plików w oknie dialogowym, argumentem wyjściowym FName jest tablica komórek zawierająca nazwy wybranych plików (PName oczywiście pozostaje ciągiem, ponieważ pliki zostały wybrane w tym samym folderze). Aby uzyskać tablicę komórek z pełnymi nazwami plików, odpowiedni jest następujący kod (funkcja strcat może łączyć ciąg z tablicą komórek z ciągów):

= uigetfile ("MultiSelect", "on"); if ~ isequal (FName, 0) FullName = strcat (PName, FName); kończyć się

Funkcje MATLAB do otwierania plików w różnych formatach

Ponieważ mówimy o otwieraniu plików, należy przytoczyć główne funkcje MATLAB zaprojektowane do pracy z plikami w różnych formatach.

Załaduj- odczyt danych z pliku binarnego lub tekstowego.

otwarty- otwarcie pliku. Sposób otwierania zależy od rozszerzenia:

  • przedłużenie m- plik jest otwierany w edytorze plików M;
  • przedłużenie mdl- model jest otwierany w Simulinku;
  • przedłużenie mata- zapis danych binarnych z pliku do pól struktury, nazwy pól struktury pokrywają się z nazwami zmiennych zapisanych w pliku;
  • przedłużenie Figa- otwiera się okno graficzne;
  • przedłużenie P- jeśli istnieje plik m o tej samej nazwie, jest on otwierany w edytorze plików M;
  • rozszerzenie htm, html- plik otwiera się w oknie przeglądarki systemu pomocy MATLAB;
  • przedłużenie pdf- plik otwiera się w programie Adobe Acrobat (wymaga instalacji otwierania przez skojarzenie w systemie Windows);
Aby otworzyć plik z niestandardowym rozszerzeniem, możesz napisać własną funkcję, która będzie wywoływana domyślnie. Jego nazwa jest utworzona ze słowa open i rozszerzenia, na przykład, aby otworzyć pliki z rozszerzeniem dtm, napisz funkcję opendtm. Przykład. Załóżmy, że musisz otworzyć pliki binarne z rozszerzeniem dtm, zawierającym wartości dwóch zmiennych, których nazwy mogą być różne. Wartości tych zmiennych należy zapisać do zmiennych czasu i danych środowiska pracy. Następnie piszemy funkcję pliku opendtm:

funkcja opendtm (fname)% wczytuje dane do struktury S = load ("-mat", fname); % poznaj nazwy pól struktury (nazwy zmiennych) F = nazwy pól (S); % Przypisz wartości do zmiennych czasu i danych przypisania stołu roboczego („podstawa”, „czas”, S. (F (1))) assignin („podstawa”, „dane”, S. (F (2)) ))

Oto jak możesz użyć funkcji opendtm:

A = 1:10; B = sqrt (A); save ("moj.dtm", "A", "B")% zapis A i B do pliku binarnego open ("moj.dtm")% otwartych wywołań opendtm oraz czas i dane są tworzone w środowisku produkcyjnym

Notatka. Funkcja uiopen łączy w sobie możliwości uigetfile i open — tworzy okno dialogowe otwierania pliku, a następnie wywołuje open, aby go otworzyć.

winopen - otwórz plik w systemie Windows z aplikacją powiązaną z tym rozszerzeniem, na przykład: winopen ("art.doc") - otwórz art.doc w MS Word; winopen ("my.txt") - otwieranie my.txt w notatniku; winopen ("all.htm") - otwiera all.htm w przeglądarce internetowej.

zeszyt- otwieranie lub tworzenie M-booka w MS Word.

publikować- wykonanie pliku M, podzielenie na komórki i zapisanie wyniku w określonym formacie: html, doc, ppt, xml, rpt, latex.

dos i system- wykonywanie poleceń (patrz też!), uruchamianie plików wykonywalnych, na przykład:

system ("oblicz")- uruchomienie kalkulatora.

uiimportuj- otwiera okno Kreator importu, w którym można importować dane z różnych formatów.

zaimportować dane- import danych w zależności od rozszerzenia pliku, przydatny również do odczytu danych z rozdzielanego pliku tekstowego.

csvread- odczytywanie danych liczbowych z pliku tekstowego oddzielonego przecinkami.

dlmread- odczytywanie danych liczbowych z pliku tekstowego z określonym ogranicznikiem.

czytanie tekstu, skanowanie tekstów- odczyt danych z pliku tekstowego o określonym formacie.

xlsread- odczyt danych z plików MS Excel.

falować- odczytanie pliku dźwiękowego wav.

Aviread- czytanie pliku avi.

imread- odczytywanie plików graficznych.

Oprócz wymienionych funkcji istnieją funkcje niskiego poziomu do pracy z plikami. Ich imiona zaczynają się na literę f:

fzamknij- zamknięcie pliku.

feof- sprawdź, czy dotarł do końca pliku.

strach- uzyskanie informacji o ostatnim błędzie podczas wejścia-wyjścia.

fgetl- czytanie linii z pliku tekstowego bez znaku końca linii.

fgets- odczytanie linii z pliku tekstowego ze znakiem końca linii.

fopen- otwarcie pliku.

fprintf- sformatowany zapis do pliku.

przestraszony- odczyt z pliku binarnego.

namiętny- przejdź na początek pliku.

fscanf- sformatowany odczyt z pliku.

fseek- przejście do danej pozycji w pliku.

fell- uzyskanie aktualnej pozycji w pliku.

fwrite- zapis do pliku binarnego.

Wszystkie funkcje do odczytu danych są wymienione w temacie pomocy: MATLAB: Funkcje - Lista kategorii: Plik I / O.

Okno dialogowe Zapisz plik — funkcja uiputfile

Użycie uiputfile jest podobne do omówionego powyżej uigetfile. Podobnie możesz ustawić filtr rozszerzenia, tytuł okna, plik lub domyślną ścieżkę. Różnica polega na tym, że w uiputfile nie ma opcji "MultiSelect" (nie jest ona potrzebna przy zapisie). Ponadto, jeśli użytkownik wybierze istniejącą nazwę pliku w oknie dialogowym zapisywania pliku, pojawi się okno potwierdzenia. Wybranie Tak kończy okno dialogowe zapisywania pliku, a Nie powraca do okna zapisywania pliku. Sprawdzanie aktywności użytkownika i pobieranie pełnej nazwy pliku jest dokładnie takie samo, jak w przypadku pliku uigetfile.

Funkcje MATLAB do zapisywania danych do plików

Wymieńmy główne funkcje MATLAB przeznaczone do zapisywania danych różnych typów.

zapisać- zapisywanie danych w plikach tekstowych i binarnych

Notatka.
Funkcja uisave łączy w sobie możliwości uigetfile i save - tworzy okno dialogowe zapisu pliku, w którym zostaną zapisane wszystkie zmienne środowiskowe.

csvwrite- zapis danych liczbowych do pliku tekstowego oddzielonych przecinkami.

dlmwrite- zapis danych liczbowych do pliku tekstowego przez określony separator.

xlswrite- rejestracja danych w formacie MS Excel.

wavwrite- nagrywanie pliku wav.

avifile- tworzy plik avi i zwraca do niego identyfikator, który jest używany w innych funkcjach: addframe, close.

film2avi- tworzenie pliku avi z macierzy, której każda kolumna przechowuje informacje o jednej klatce (patrz funkcje: film, getframe, im2frame).

pisać!- napisanie pliku graficznego.

Oprócz wymienionych funkcji istnieją funkcje niskiego poziomu służące do pracy z plikami, których nazwy zaczynają się na literę f (patrz sekcja „Funkcje MATLAB do otwierania różnych formatów plików” powyżej).

Okno dialogowe wyboru katalogu - funkcja uigetdir

Funkcja uigetdir otwiera okno dialogowe Przeglądaj w poszukiwaniu folderu i zwraca ścieżkę do wybranego katalogu lub zero, jeśli użytkownik nie dokonał wyboru. Sprawdzenie, czy katalog został wybrany, odbywa się w taki sam sposób, jak w funkcji uigetfile dla okna dialogowego otwierania pliku. Sposoby wywołania uigetdir:

dname = uigetdir- otwiera okno dialogowe wyboru katalogu, w którym podświetlony jest aktualny katalog MATLAB.

dname = uigetdir ("ścieżka startowa")- otwiera okno dialogowe wyboru katalogu, w którym wybrany jest określony katalog, na przykład: dname = uigetdir ("c: \").

dname = uigetdir ("ścieżka startowa", "tekst")- otwiera okno dialogowe wyboru katalogu, w którym wskazany katalog jest wybierany i umieszcza wskazany tekst nad oknem z hierarchiczną strukturą katalogów. Jeśli chcesz otworzyć okno dialogowe wyboru katalogu, w którym podświetlony jest bieżący katalog MATLAB, musisz podać pusty ciąg zamiast pierwszego argumentu wejściowego: dname = uigetdir ("", "text").

Funkcje katalogów MATLAB

Dalsze działania po wybraniu przez użytkownika nazwy katalogu zakładają wykorzystanie funkcji MATLAB przeznaczonych do pracy z katalogami.

płyta CD- zmień aktualny katalog MATLAB

reż- wyświetlanie zawartości katalogu w oknie poleceń lub zapisywanie informacji o zawartości do tablicy struktur.

ścieżka, rmpath- Zarządzanie ścieżką wyszukiwania MATLAB.

Notatki.
Funkcja pathtool wyświetla specjalne okno dialogowe Set Path do zarządzania ścieżkami wyszukiwania MATLAB.
Funkcja przeglądarki plików wyświetla specjalne okno dialogowe Bieżący katalog z zawartością bieżącego katalogu, możliwością wyboru nowego katalogu bieżącego i otwierania plików w MATLAB.

Wszystkie funkcje do pracy z katalogami w MATLAB są wymienione w systemie pomocy w MATLAB: Funkcje - Lista kategorii: Narzędzia pulpitu i środowisko programistyczne: Obszar roboczy, Ścieżka wyszukiwania i Operacje na plikach.

Okno dialogowe wyboru czcionki — funkcja uisetfont

Funkcji uisetfont można używać do dwóch celów:
1) utworzenie okna dialogowego do wyboru czcionki i zapisania informacji o wybranej czcionce (nazwa, rozmiar, styl) w strukturze;
2) utworzenie okna dialogowego do wyboru czcionki i zmiany obiektów tekstowych, etykiet osi lub kontrolek zgodnie z ustawieniami dokonanymi w tym oknie.

S = uisetfont- prowadzi do pojawienia się okna dialogowego wyboru czcionki i jeżeli dokonano w nim wyboru to zwracana jest struktura S, której pola mają następujące znaczenie:

S.FontName - napis zawierający nazwę czcionki; S.FontUnits - jednostki miary („punkty”); S.FontSize - rozmiar; S.FontWeight - pogrubienie („normalny” lub „pogrubiony”); S.FontAngle - krój pisma ("normalny" lub "kursywa").

Jeśli użytkownik nie wybrał czcionki i zamknął okno, to S wynosi zero.

S = czcionka uiset (S0)- prowadzi do pojawienia się okna dialogowego wyboru czcionki, w którym domyślna czcionka jest wybierana zgodnie z wartościami pól struktury S0, na przykład:

S0.FontName = "Arial"; S0.FontUnits = "punkty"; S0.Rozmiar Czcionki = 20; S0.FontWeight = "pogrubienie"; S0.FontAngle = "normalny"; S = czcionka uiset (S0)

S = uisetfont („Tytuł okna”) lub S = uisetfont (S0, „Tytuł okna”)- tak samo jak poprzednie opcje, tylko okno wyboru czcionki ma nadany tytuł.

czcionka uiset (h)- wywołanie okna dialogowego wyboru czcionki dla obiektu tekstowego, osi lub kontrolki ze wskaźnikiem h.

uisetfont (h, "tytuł okna")- to samo co uisetfont (h), tylko okno wyboru czcionki ma nadany tytuł.

S = uisetfont (h), S = uisetfont (h, "tytuł okna")- podobnie jak w dwóch poprzednich opcjach, dodatkowo w strukturze S zwracana jest tylko informacja o wyborze użytkownika.

Przykład zmiany czcionki obiektów graficznych

hA = osie; % tworzenie wykresu osi (rand (10))% kreślenie hT = tytuł ("Wykres losowy")% dodanie tytułu% otwarcie okna dialogowego wyboru czcionki do zaznaczania osi uisetfont (hA, "Ustaw czcionkę dla osi"); % otwórz okno dialogowe wyboru czcionki dla tytułu uisetfont (hT, "Ustaw czcionkę dla tytułu"); Okno dialogowe wyboru koloru — funkcja uisetcolor

Funkcja uisetcolor, podobnie jak uisetfont, może służyć do dwóch celów:
1) utworzenie okna dialogowego wyboru koloru i zapisanie wybranego koloru do wektora w formacie RGB;
2) utworzenie okna dialogowego wyboru koloru i zmiana obiektów graficznych posiadających właściwość Kolor zgodnie z ustawieniami dokonanymi w tym oknie.

C = uisetkolor- utworzenie okna dialogowego wyboru koloru (w nim domyślnie kolorem bieżącym jest kolor biały) i zapisanie wybranego koloru do wektora C w formacie RGB. Jeśli użytkownik nie dokonał wyboru, C wynosi zero.

C = kolor uiset (C0)- tak samo jak poprzednia opcja, tylko w oknie wyboru koloru aktualny kolor jest określony przez wektor C0 w RGB. Jeśli użytkownik nie dokonał wyboru, C jest tym samym, co C0.

С = uisetcolor („Tytuł okna”), С = uisetcolor (С0, „Tytuł okna”)- tak samo jak poprzednia opcja, tylko okno dialogowe wyboru koloru ma nadany tytuł.

kolor (h)- otwarcie okna dialogowego wyboru koloru, w którym za pomocą wskaźnika h można określić kolor obiektu graficznego (obiekt graficzny musi posiadać właściwość Kolor).

uisetcolor (h, "Tytuł okna")- podobnie jak poprzednie, ale okno dialogowe ma nadany tytuł.

C = uisetcolor (h) lub C = uisetcolor (h, „Tytuł okna”)- tak samo jak dwie ostatnie metody. Oprócz zmiany koloru obiektu, wybrany kolor jest zapisywany do wektora C w formacie RGB.

Przykład zmiany koloru obiektów graficznych.

hA = osie; % tworzenie osi% kreślenie x = 0: 0,1: 10; y = grzech (x); hL = wykres (x, y) hT = tytuł ("Wykres losowy")% dodaj tytuł% otwórz okno dialogowe, aby wybrać kolor linii uisetcolor (hL, "Wybierz kolor linii")% otwórz okno dialogowe, aby wybrać tytuł color uisetcolor (hT, "Wybierz kolor tytułu")% otwiera okno dialogowe wyboru koloru osi uisetcolor (hA, "Wybierz kolor osi")

Okno z paskiem postępu - funkcja waitbar

Funkcja waitbar tworzy okno z paskiem postępu i umożliwia jego aktualizację.

h = pasek oczekiwania (x, "tekst")- wyświetla okno z paskiem postępu i określonym tekstem nad paskiem. Długość paska postępu jest proporcjonalna do wartości x, która musi zawierać się w przedziale od 0 do 1. Argument wyjściowy h jest wskaźnikiem do okna graficznego z paskiem postępu.

pasek oczekiwania (x, h)- zwiększa długość paska postępu ze wskaźnikiem h zgodnie z wartością x.

% utwórz okno z pustym paskiem postępu h = waitbar (0, "Rozwiązywanie problemów z wartościami własnymi..."); dla i = 1: 100 A = rand (30); L = np. (A); waitbar (i / 100)% zaktualizuj pasek postępu end% usuń okno graficzne z paskiem postępu zamknij (h)

Kolor paska można zmienić, jeśli weźmiemy pod uwagę, że pasek jest obiektem wielokątnym, potomkiem osi, które z kolei są potomkami okna graficznego utworzonego przez funkcję waitbar. Przykład:

% utwórz okno z pustym paskiem postępu h = waitbar (0, "Rozwiązywanie problemów z wartościami własnymi..."); % znajdź wskaźnik do wielokąta hP = findobj (h, "Type", "patch"); % ustawienie koloru wnętrza i obramowania wielokątnego zestawu obiektów (hP, "FaceColor", "g", "EdgeColor", "g") dla i = 1: 1000 waitbar (i / 1000, h) end close ( h)

Właściwości samego okna można również zmienić za pomocą zarówno wskaźnika do niego, jak i faktu, że funkcja waitbar pozwala ustawić właściwości okna w argumentach wejściowych, na przykład:

h = waitbar (0, "Po prostu biały", "Kolor", "w", "Nazwa", "program");

Tworzenie okna dialogowego z przyciskami — funkcja menu

Funkcja menu tworzy okno z tekstem i przyciskami ułożonymi w kolumnie z określonymi etykietami. Po kliknięciu przycisku przez użytkownika, w argumencie wyjściowym funkcji menu zwracany jest jego numer.

przycisk = menu („Wybierz metodę”, „Newton”, „Gauss”, „Zeidel”)

Jeżeli użytkownik nie dokonał wyboru, to przycisk = 0.

Praca z wiersza poleceń MatLab jest trudna, jeśli musisz wprowadzać wiele poleceń i często je zmieniać. Prowadzenie dziennika z poleceniem dziennika i zapisywanie środowiska pracy tylko trochę ułatwia sprawę. Najwygodniejszym sposobem wykonywania poleceń MatLab jest użycie pilniki M, w którym możesz wpisywać polecenia, wykonywać je wszystkie na raz lub w częściach, zapisywać je do pliku i używać później. Edytor plików M jest przeznaczony do pracy z plikami M. Za pomocą tego edytora możesz tworzyć własne funkcje i wywoływać je, w tym z wiersza poleceń.

Rozwiń menu Plik głównego okna MatLaba oraz w akapicie Nowy wybierz podpunkt Plik M... Nowy plik otworzy się w oknie edytora plików M.

Wpisz w edytorze polecenia, które prowadzą do budowy dwóch wykresów w jednym oknie graficznym:

x =;
f = exp (-x);
działka podrzędna (1, 2, 1)
działka (x, f)
g = grzech (x);
działka podrzędna (1, 2, 2)
działka (x, g)

Zapisz teraz plik o nazwie mydemo.m w podkatalogu Praca głównego katalogu MatLab, wybierając element Zapisz jako menu Plik redaktor. Aby uruchomić wszystkie polecenia zawarte w pliku do wykonania, wybierz element Uruchomić w menu Odpluskwić. Na ekranie pojawi się okno graficzne. Postać nr 1, zawierające wykresy funkcji. Jeśli zdecydujesz się wykreślić cosinus zamiast sinusa, po prostu zmień linię g = sin (x) w pliku M na g = cos (x) i ponownie uruchom wszystkie polecenia.

Uwaga 1

Jeżeli podczas wpisywania zostanie popełniony błąd i MatLab nie rozpoznaje polecenia, to polecenia są wykonywane aż do błędnie wprowadzonego, po czym w oknie poleceń wyświetla się komunikat o błędzie.

Bardzo wygodną funkcją zapewnianą przez edytor plików M jest wykonanie niektórych poleceń. Zamknij okno graficzne Postać Nr 1. Wybierz za pomocą myszy, przytrzymując lewy przycisk, lub za pomocą klawiszy strzałek, przytrzymując , pierwsze cztery polecenia programu i wykonaj je od punktu Oceniać Wybór menu Tekst. Należy pamiętać, że w oknie graficznym wyświetlany jest tylko jeden wykres, odpowiadający wykonywanym poleceniom. Pamiętaj, że aby wykonać niektóre polecenia, zaznacz je i naciśnij ... Wykonaj pozostałe trzy polecenia programu i monitoruj stan okna graficznego. Przećwicz to sam, wpisz dowolne przykłady z poprzednich ćwiczeń w edytorze plików M i uruchom je.

Możliwość dostarczenia pojedynczych bloków pilnika M uwagi, które są pomijane podczas wykonywania, ale są wygodne podczas pracy z plikiem M. Komentarze w MatLabie zaczynają się od znaku procenta i są automatycznie podświetlane na zielono, na przykład:

% wykreślenia sin (x) w osobnym oknie

W edytorze plików M można jednocześnie otworzyć wiele plików. Przechodzenie między plikami odbywa się za pomocą zakładek z nazwami plików znajdujących się na dole okna edytora.

Otwieranie istniejącego pliku M odbywa się za pomocą elementu otwarty menu Plikśrodowisko pracy, czyli edytor M-plików. Możesz również otworzyć plik w edytorze za pomocą polecenia edycji MatLab z wiersza poleceń, podając nazwę pliku jako argument, na przykład:

Polecenie edit bez argumentu tworzy nowy plik.
Wszystkie przykłady znalezione w tym i następnych ćwiczeniach najlepiej jest wpisywać i zapisywać w plikach M, uzupełniać komentarzami i uruchamiać z edytora plików M. Zastosowanie metod numerycznych i programowania w MatLabie wymaga tworzenia M-plików.

2. Rodzaje plików M

W MatLabie istnieją dwa rodzaje plików M: plik programu(Script M-Files) zawierający sekwencję poleceń oraz funkcje-plików(Funkcje M-Files), które opisują funkcje zdefiniowane przez użytkownika.

Utworzyłeś plik programu (plik procedury) podczas czytania poprzedniej podsekcji. Wszystkie zmienne zadeklarowane w pliku programu stają się dostępne w środowisku produkcyjnym po jego wykonaniu. Uruchom program plików pokazany w podrozdziale 2.1 w edytorze plików M? i wpisz whos w wierszu poleceń, aby wyświetlić zawartość środowiska roboczego. Opis zmiennych pojawi się w oknie poleceń:

„Kto?
Nazwa Rozmiar Bajty Klasa
f 1x71 568 podwójna tablica
g 1x71 568 podwójna tablica
x 1x71 568 podwójna tablica
Całkowita suma to 213 elementów przy użyciu 1704 bajtów

Zmienne zdefiniowane w jednym pliku programu mogą być używane w innych programach plikowych oraz w poleceniach wykonywanych z wiersza poleceń. Wykonanie poleceń zawartych w programie plikowym odbywa się na dwa sposoby:

  • Z edytora plików M, jak opisano powyżej.
  • Z wiersza poleceń lub innego pliku programu, podczas gdy nazwa pliku M jest używana jako polecenie.

Zastosowanie drugiej metody jest znacznie wygodniejsze, zwłaszcza jeśli utworzony plik programu będzie później wielokrotnie używany. W rzeczywistości wygenerowany plik M staje się poleceniem zrozumiałym dla MatLaba. Zamknij wszystkie okna graficzne i wpisz mydemo w wierszu poleceń, pojawi się okno graficzne odpowiadające poleceniom w pliku programu mydemo.m. Po wpisaniu komendy mydemo MatLab wykonuje następujące czynności.

  • Sprawdza, czy wpisana komenda jest nazwą którejkolwiek ze zmiennych zdefiniowanych w środowisku produkcyjnym. W przypadku wprowadzenia zmiennej wyświetlana jest jej wartość.
  • Jeśli nie zostanie podana zmienna, MatLab wyszukuje wprowadzone polecenie wśród wbudowanych funkcji. Jeśli polecenie okaże się funkcją wbudowaną, zostanie wykonane.

Jeśli nie zostanie wprowadzona zmienna lub wbudowana funkcja, MatLab rozpocznie wyszukiwanie pliku M z nazwą polecenia i rozszerzeniem m... Wyszukiwanie zaczyna się od aktualny katalog(Aktualny katalog), jeśli nie ma w nim pliku M, MatLab przeszukuje katalogi zainstalowane w ścieżki wyszukiwania(Ścieżka). Znaleziony plik M jest wykonywany w MatLab.

Jeśli żadne z powyższych działań nie zakończyło się sukcesem, w oknie poleceń wyświetlany jest komunikat, na przykład:

»Mydem
??? Niezdefiniowana funkcja lub zmienna „mydem”.

Zazwyczaj pliki M są przechowywane w katalogu użytkownika. Aby MatLab mógł je znaleźć, należy ustawić ścieżki wskazujące lokalizację plików M.

Uwaga 2

Powinieneś trzymać swoje własne pliki M poza głównym katalogiem MatLab z dwóch powodów. Po pierwsze, podczas ponownej instalacji MatLaba, pliki zawarte w podkatalogach głównego katalogu MatLaba mogą zostać zniszczone. Po drugie, podczas uruchamiania MatLaba wszystkie pliki podkatalogu toolbox są w optymalny sposób umieszczane w pamięci komputera, aby zwiększyć wydajność pracy. Jeśli zapisałeś plik M do tego katalogu, to będzie można go użyć dopiero po ponownym uruchomieniu MatLaba.

3. Wyznaczanie ścieżek

W wersjach MatLab 6 .x określany jest bieżący katalog i ścieżki wyszukiwania. Te właściwości są ustawiane za pomocą odpowiednich okien dialogowych lub poleceń z wiersza poleceń.

Bieżący katalog jest określany w oknie dialogowym Aktualny Informatorśrodowisko pracy. Okno jest obecne w środowisku pracy, jeśli element jest zaznaczony Aktualny Informator menu Poglądśrodowisko pracy.
Bieżący katalog jest wybierany z listy. Jeśli nie ma go na liście, można go dodać z okna dialogowego Przeglądaj dla Teczka, wywołane przez kliknięcie przycisku znajdującego się po prawej stronie listy. Zawartość bieżącego katalogu jest wyświetlana w tabeli plików.

Ścieżki wyszukiwania są zdefiniowane w oknie dialogowym Ustawić Ścieżka nawigator ścieżek, dostęp z punktu Ustawić Ścieżka menu Plikśrodowisko pracy.

Aby dodać katalog, kliknij przycisk Dodać Teczka Przeglądaj dla Ścieżka wybierz żądany katalog. Dodanie katalogu ze wszystkimi jego podkatalogami odbywa się poprzez kliknięcie przycisku Dodaj za pomocą podfolderów. MATLAB Szukaj ścieżka. Kolejność wyszukiwania odpowiada lokalizacji ścieżek w tym polu, przy czym katalog znajdujący się na górze listy jest wyświetlany jako pierwszy. Można zmienić kolejność wyszukiwania lub całkowicie usunąć ścieżkę do katalogu, dla którego wybierz katalog w polu MATLAB Szukaj ścieżka i określ jego położenie za pomocą przycisków:
Ruszaj się do Szczyt - przejdź na górę listy;
Ruszaj się W górę - przejdź o jedną pozycję w górę;
Usunąć - usuń z listy;
Ruszaj się W dół - przejdź w dół o jedną pozycję;
Ruszaj się do Spód - umieścić na dole listy.

4. Komendy do ustawiania ścieżek.

Kroki ustawiania ścieżek w MatLab 6 .x zduplikowane przez polecenia. Bieżący katalog ustawia się za pomocą polecenia cd, na przykład cd c: \ users \ igor. Polecenie cd, wywołane bez argumentu, wypisuje ścieżkę do bieżącego katalogu. Aby ustawić ścieżki, użyj polecenia path, wywoływanego z dwoma argumentami:

ścieżka (ścieżka, "c: \ users \ igor") - dodaje katalog c: \ users \ igor o najniższym priorytecie wyszukiwania;
path ("c: \ users \ igor", ścieżka) - dodaje katalog c: \ users \ igor o najwyższym priorytecie wyszukiwania.

Użycie polecenia path bez argumentów powoduje wyświetlenie na ekranie listy ścieżek wyszukiwania. Możesz usunąć ścieżkę z listy za pomocą polecenia rmpath:

rmpath („c: \ users \ igor”) usuwa ścieżkę do katalogu c: \ users \ igor z listy ścieżek.

Uwaga 3

Nie usuwaj niepotrzebnie ścieżek do katalogów, zwłaszcza tych, których przeznaczenia nie jesteś pewien. Usunięcie może spowodować, że niektóre funkcje zdefiniowane w MatLabie staną się niedostępne.

Przykład. Utwórz w katalogu głównym dysku D(lub dowolny inny dysk lub katalog, w którym uczniowie mogą tworzyć własne katalogi) katalog z Twoim nazwiskiem, na przykład WORK_IVANOV i zapisz tam plik M mydemo.m pod nazwą mydemo3.m. Ustaw ścieżki do pliku i zademonstruj, że plik jest dostępny z wiersza poleceń. Zapisz wyniki w raporcie laboratoryjnym.

Opcja rozwiązania:

1. W katalogu głównym dysku D tworzony jest katalog WORK_IVANOV.
2. Plik M mydemo.m pod nazwą mydemo3.m jest zapisywany w katalogu WORK_IVANOV.
3. Otworzy się okno dialogowe. Ustawić Ścieżka menu Plikśrodowisko pracy MatLab.
4. Przycisk jest wciśnięty Dodać Teczka i w wyświetlonym oknie dialogowym Przeglądaj dla Ścieżka wybrany jest katalog WORK_IVANOV.
5. Dodanie katalogu ze wszystkimi jego podkatalogami odbywa się poprzez naciśnięcie przycisku Dodać z Podfoldery. W polu pojawi się ścieżka do dodanego katalogu MATLAB Szukaj ścieżka.
6. Aby zapamiętać ścieżkę, naciśnij klawisz Zapisać Okno dialogowe Ustawić Ścieżka.
7. Sprawdzenie poprawności wszystkich akcji poprzez wpisanie komendy mydemo3 z linii komend. Na ekranie pojawi się okno graficzne.

5. Funkcje plików

Powyższe programy plikowe są sekwencją poleceń MatLab, nie mają argumentów wejściowych i wyjściowych. Aby używać metod numerycznych i podczas programowania własnych aplikacji w MatLabie, musisz umieć komponować funkcje plikowe, które wykonują niezbędne akcje z argumentami wejściowymi i zwracają wynik w argumentach wyjściowych. W tej podsekcji omówiono kilka prostych przykładów, które pomogą Ci zrozumieć, jak pracować z funkcjami plików. Funkcje plikowe, podobnie jak procedury plikowe, są tworzone w edytorze plików M.

5.1. Funkcje plikowe z jednym argumentem wejściowym

Załóżmy, że w obliczeniach często konieczne jest użycie funkcji

Sensowne jest napisanie funkcji pliku raz, a następnie wywołanie jej wszędzie tam, gdzie jest to konieczne do oceny tej funkcji. Otwórz nowy plik w edytorze plików M i wpisz tekst aukcji

funkcja f = mojazabawa (x)
f = exp (-x) * sqrt ((x ^ 2 + 1) / (x ^ 4 + 0,1));

Słowo funkcja w pierwszym wierszu określa, że ​​ten plik zawiera plik funkcji. Pierwsza linia to nagłówek funkcji, którzy gospodarze? nazwa funkcji oraz listy argumentów wejściowych i wyjściowych. W przykładzie pokazanym na liście nazwa funkcji to myfun, jednym argumentem wejściowym jest x, a jednym wyjściem jest f. Po tytule następuje ciało funkcyjne(w tym przykładzie składa się z jednego wiersza), w którym obliczana jest jego wartość. Ważne jest, aby obliczona wartość została zapisana w f. Dołączony średnik zapobiega wyświetlaniu zbędnych informacji na ekranie.

Teraz zapisz plik w swoim katalogu roboczym. Należy pamiętać, że wybór przedmiotu Zapisać lub Zapisać jak menu Plik prowadzi do pojawienia się w polu okna dialogowego do zapisania pliku Plik Nazwa który już zawiera nazwę myfun. Nie zmieniaj, zapisz plik funkcji w pliku o sugerowanej nazwie.

Teraz utworzonej funkcji można używać w taki sam sposób, jak wbudowanej funkcji sin, cos i innych, na przykład z wiersza poleceń:

"T = moja zabawa (1.3)
Y =
0.2600

Własne funkcje mogą być wywoływane z pliku programu iz innej funkcji pliku.

Ostrzeżenie

Katalog zawierający plik funkcji musi być aktualny lub ścieżka do niego musi być dodana do ścieżek wyszukiwania, w przeciwnym razie MatLab po prostu nie znajdzie funkcji lub wywoła inną o tej samej nazwie (jeśli znajduje się w dostępnych katalogach do wyszukiwania ).

Funkcja pliku pokazana na liście ma jedną istotną wadę. Próba obliczenia wartości funkcji z tablicy skutkuje błędem, a nie tablicą wartości, jak to ma miejsce podczas oceny funkcji wbudowanych.

„X =;
„T = mojazabawa (x)
??? Błąd przy użyciu ==> ^
Matryca musi być kwadratowa.
Błąd w ==> C: \ MATLABRll \ praca \ myfun.m
W linii 2 ==> f = exp (-x) * sqrt ((x ^ 2 + 1) / (x ^ 4 + 1));

Jeśli studiowałeś pracę z tablicami, wyeliminowanie tego niedociągnięcia nie spowoduje trudności. Wystarczy użyć operacji elementwise podczas obliczania wartości funkcji.
Zmodyfikuj treść funkcji, jak pokazano na poniższej liście (nie zapomnij zapisać zmian w pliku myfun.m).

funkcja f = mojazabawa (x)
f = exp (-x). * sqrt ((x. ^ 2 + 1) ./ (x. ^ 4 + 0.1));

Teraz argumentem funkcji myfun może być liczba, wektor lub macierz wartości, na przykład:

„X =;
„T = mojazabawa (x)
Y =
0.2600 0.0001

Zmienna y, w której zapisany jest wynik wywołania funkcji myfun, automatycznie staje się wektorem o wymaganej wielkości.

Narysuj funkcję myfun na segmencie z wiersza poleceń lub za pomocą programu plikowego:

x =;
y = mojazabawa (x);
działka (x, y)

MatLab daje jeszcze jedną możliwość pracy z funkcjami plikowymi - używanie ich jako argumentów do niektórych poleceń. Na przykład do kreślenia wykresu jest używana specjalna funkcja fplot, która zastępuje sekwencję poleceń pokazaną powyżej. Podczas wywoływania fplot nazwa funkcji, której wykres chcesz wykreślić, jest ujęta w apostrofy, granice kreślenia są określone w dwuelementowym wektorze wierszowym

fplot ("mojazabawa")

Rysuj wykresy myfun z wykresem i fplotem na tych samych osiach z opcją hold. Należy zauważyć, że wykres wykreślany za pomocą fplot dokładniej odzwierciedla zachowanie funkcji, ponieważ fplot sam wybiera krok argumentu, zmniejszając go w obszarach szybkiej zmiany wyświetlanej funkcji. Zapisz wyniki w raporcie laboratoryjnym.

5.2. Funkcje plików z wieloma argumentami wejściowymi

Zapisywanie funkcji plikowych z kilkoma argumentami wejściowymi jest praktycznie takie samo, jak w przypadku jednego argumentu. Wszystkie argumenty wejściowe są umieszczane na liście rozdzielanej przecinkami. Na przykład poniższa lista zawiera funkcję pliku, która oblicza długość wektora promienia punktu w przestrzeni trójwymiarowej
Listing funkcji pliku z kilkoma argumentami

funkcja r = promień3 (x, y, z)
r = sqrt (x. ^ 2 + y. ^ 2 + z. ^ 2);

»R = promień3 (1, 1, 1)
R =
1.732

Oprócz funkcji z wieloma argumentami wejściowymi, MatLab umożliwia tworzenie funkcji zwracających wiele wartości, tj. posiadanie wielu argumentów wyjściowych.

5.3. Funkcje plikowe z wieloma argumentami wyjściowymi

Funkcje plikowe z wieloma argumentami wyjściowymi są przydatne podczas oceny funkcji zwracających wiele wartości (w matematyce są one nazywane funkcje wektorowe). Argumenty wyjściowe są dodawane do listy argumentów wyjściowych oddzielone przecinkami, a sama lista jest ujęta w nawiasy kwadratowe. Dobrym przykładem jest funkcja, która zamienia czas w sekundach na godziny, minuty i sekundy. Ta funkcja pliku jest pokazana na poniższej liście.

Lista funkcji do zamiany sekund na godziny, minuty i sekundy

funkcja = hms (sek)
godzina = podłoga (sek / 3600);
minuta = piętro ((s-godzina * 3600) / 60);
sekunda = s-godzina * 3600-minuta * 60;

Podczas wywoływania funkcji plikowych z kilkoma argumentami wyjściowymi wynik należy zapisać w wektorze o odpowiedniej długości:

„[H, M, S] = hms (10000)
H =
2
M =
46
S =
40

6. Podstawy programowania w MatLab

Funkcje plikowe i plik programu użyte w poprzednich podrozdziałach są najprostszymi przykładami programów, wszystkie zawarte w nich polecenia MatLab są wykonywane sekwencyjnie. Aby rozwiązać wiele poważniejszych problemów, konieczne jest pisanie programów, w których akcje wykonywane są cyklicznie lub w zależności od określonych warunków wykonywane są różne części programów. Rozważmy główne operatory, które ustalają kolejność wykonywania poleceń MatLaba. Operatory mogą być używane zarówno w procedurach plikowych, jak iw funkcjach, co pozwala na tworzenie programów o złożonej rozgałęzionej strukturze.

6.1. Operator pętli dla

Operator jest przeznaczony do wykonywania określonej liczby powtarzalnych czynności. Najprostsze użycie instrukcji for jest następujące:

for count = start: step: final
Polecenia MatLaba
kończyć się

Tutaj count to zmienna pętli, start to jej wartość początkowa, final to wartość końcowa, a step to krok, o który zwiększa się licznik za każdym razem, gdy wchodzi się do pętli. Pętla kończy się, gdy tylko liczba staje się większa niż ostateczna. Zmienna pętli może przyjmować nie tylko wartości całkowite, ale także wartości rzeczywiste dowolnego znaku. Przeanalizujmy użycie operatora pętli for na kilku typowych przykładach.
Niech będzie wymagane wyprowadzenie rodziny krzywych dla, która jest określona przez funkcję zależną od parametru dla wartości parametrów od -0,1 do 0,1.
Wpisz tekst procedury pliku w edytorze M-file i zapisz go w pliku FORdem1.m, a następnie uruchom (z edytora M-file lub z wiersza poleceń wpisując w nim polecenie FORdem1 i naciskając ):

% plik-program do konstruowania rodziny krzywych
x =;
dla a = -0,1: 0,02: 0,1
y = exp (-a * x). * sin (x);
trzymać się
działka (x, y)
kończyć się

Uwaga 4

Edytor plików M automatycznie proponuje umieszczenie instrukcji wewnątrz pętli, wciętej od lewej krawędzi. Wykorzystaj tę możliwość dla wygody pracy z tekstem programu.

W wyniku wykonania FORdem1 pojawi się okno graficzne, które zawiera wymaganą rodzinę krzywych.

Napisz plik programu, aby obliczyć sumę

Algorytm obliczania sumy wykorzystuje akumulację wyniku, tj. na początku suma jest równa zero ( S= 0), a następnie w zmienną k 1 jest wprowadzane, 1 / jest obliczane k! jest dodawany do S a wynik jest ponownie wprowadzany S... Dalej k wzrasta o jeden, a proces trwa, aż ostatni termin osiągnie wartość 1/10 !. Program plikowy Fordem2, pokazany na poniższym zestawieniu, oblicza wymaganą ilość.

Wykaz programu plikowego Fordem2 do obliczania sumy

% plik-program do obliczania sumy
% 1/1!+1/2!+ … +1/10!

% Zerowanie S w celu zgromadzenia kwoty
S = 0;
% kumulacji kwoty w cyklu
dla k = 1:10
S = S + 1 / silnia (k);
Kończyć się
% wyślij wynik do okna poleceń S

Wpisz plik programu w edytorze plików M, zapisz go w bieżącym katalogu w pliku Fordem2.m i wykonaj. Wynik zostanie wyświetlony w oknie poleceń, ponieważ w ostatnim wierszu pliku programu S zawarte bez średnika, aby wyprowadzić wartość zmiennej S

Zauważ, że pozostałe wiersze w pliku programu, które mogły spowodować wyświetlenie wartości pośrednich, są zakończone średnikiem, aby ukryć dane wyjściowe w oknie poleceń.

Pierwsze dwie linie z komentarzami nie są przypadkowo oddzielone pustą linią od reszty tekstu programu. To one są wyświetlane, gdy użytkownik, korzystając z polecenia pomocy z wiersza poleceń, otrzymuje informacje o tym, co robi Fordem2.

>> pomóż Fordem2
plik-program do obliczania sumy
1/1!+1/2!+ … +1/10!

Pisząc programy i funkcje plików, nie zaniedbuj komentarzy!
Wszystkie zmienne użyte w pliku programu stają się dostępne w środowisku produkcyjnym. Są to tak zwane zmienne globalne. Z drugiej strony wszystkie zmienne wprowadzone w środowisku pracy można wykorzystać w pliku programu.

Rozważ problem obliczenia sumy, podobny do poprzedniego, ale w zależności od zmiennej x

Aby obliczyć tę kwotę w programie plików Fordem2, należy zmienić linię wewnątrz pętli for na

S = S + x. ^ K / silnia (k);

Przed uruchomieniem programu należy zdefiniować zmienną x w wierszu poleceń za pomocą następujących poleceń:

>> x = 1,5;
>> Fordem2
S =
3.4817

Jak x może to być wektor lub macierz, ponieważ operacje element po elemencie zostały użyte do akumulacji sumy w programie plikowym Fordem2.

Przed uruchomieniem Fordem2, pamiętaj o przypisaniu do zmiennej x jakąś wartość, a aby obliczyć sumę, na przykład piętnastu terminów, będziesz musiał dokonać zmian w tekście pliku programu. O wiele lepiej jest napisać ogólną funkcję pliku, która ma wartość jako argument wejściowy x a górna granica sumy, a weekend to wartość sumy S(x). Funkcja pliku sumN jest pokazana na poniższej liście.

Lista funkcji pliku do obliczania sumy

funkcja S = sumaN (x, N)
% file-funkcja do obliczania sumy
% x / 1! + x ^ 2/2! +… + x ^ N / N!
% wykorzystania: S = sumaN (x, N)

% zerowanie S w celu zgromadzenia kwoty
S = 0;
% kumulacji kwoty w cyklu
dla m = 1: 1: N
S = S + x. ^ M / silnia (m);
kończyć się

Użytkownik może dowiedzieć się o używaniu funkcji sumN wpisując help sumN w wierszu poleceń. Okno poleceń wyświetli pierwsze trzy linie z komentarzami, oddzielone od tekstu funkcji pliku pustą linią.

Zwróć uwagę, że zmienne funkcji plik nie są globalne (mw sumie N funkcji plik). Próba wyświetlenia wartości m z wiersza poleceń powoduje wyświetlenie komunikatu, że m jest niezdefiniowane. Jeżeli w środowisku pracy istnieje zmienna globalna o tej samej nazwie, zdefiniowana z wiersza poleceń lub w programie plik, to nie jest ona w żaden sposób połączona ze zmienną lokalną w funkcji plik. Z reguły lepiej zaprojektować własne algorytmy w postaci funkcji plikowych, aby zmienne użyte w algorytmie nie zmieniały wartości tych samych zmiennych globalnych środowiska pracy.

Pętle For mogą być zagnieżdżone w sobie, podczas gdy zmienne zagnieżdżonych pętli muszą być różne.

Pętla for jest przydatna do wykonywania powtarzających się, podobnych akcji, gdy liczba jest z góry określona. Bardziej elastyczna pętla while pozwala ominąć to ograniczenie.

6.2. Chociaż instrukcja pętli

Rozważmy przykład obliczenia sumy, podobny do przykładu z poprzedniego akapitu. Wymagane jest znalezienie sumy szeregu dla danego x(rozszerzenie serii):
.

Suma może być kumulowana, o ile wyrazy nie są zbyt małe, powiedzmy więcej w module.Pętla for jest tutaj niezbędna, ponieważ liczba wyrazów nie jest z góry znana. Wyjściem jest użycie pętli while, która działa tak długo, jak spełniony jest warunek pętli:

podczas gdy warunek pętli
Polecenia MatLaba
kończyć się

W tym przykładzie warunek pętli oznacza, że ​​bieżący termin jest większy. Znak większa niż (>) jest używany do zarejestrowania tego warunku. Tekst funkcji pliku mysin, która oblicza sumę serii, jest pokazany na poniższej liście.

Listing funkcji pliku mysin obliczającej sinus przez rozwinięcie szeregu

funkcja S = mysin (x)
% Oblicz sinus przez rozwinięcie szeregu
% Użycie: y = mysin (x), -pi

S = 0;
k = 0;
podczas gdy abs (x. ^ (2 * k + 1) / silnia (2 * k + 1))> 1.0e-10
S = S + (-1) ^ k * x. ^ (2 * k + 1) / silnia (2 * k + 1);
k = k + 1;
kończyć się

Zauważ, że pętla while, w przeciwieństwie do for, nie ma zmiennej pętli, więc musieliśmy przypisać zero przed rozpoczęciem pętli, a wewnątrz pętli zwiększyliśmy k o jeden.
Warunek pętli while może zawierać więcej niż tylko znak >. W celu ustawienia warunków wykonania cyklu dozwolone są również inne operacje relacji podane w tabeli. jeden.

Tabela 1. Operacje relacji

Bardziej złożone warunki są określane za pomocą operatorów logicznych. Na przykład warunek polega na jednoczesnym spełnieniu dwóch nierówności i i jest pisany za pomocą operatora logicznego i

i (x> = -1, x< 2)

lub równoważnie z &

(x> = -1) & (x< 2)

Operatory logiczne i przykłady ich użycia podano w tabeli. 2.

Tabela 2. Operatory logiczne

Operator

Pisanie do MatLaba

Zapis równoważny

Logiczne „ORAZ”

i (x< 3, k == 4)

(x< 3) & (k == 4)

Logiczne „LUB”

Lub (x == 1, x == 2)

(x == 1) | (x == 2)

Odmawianie „NIE”

Przy obliczaniu sumy szeregu nieskończonego sensowne jest ograniczenie liczby terminów. Jeżeli szereg jest rozbieżny ze względu na to, że jego elementy nie dążą do zera, to warunek małej wartości bieżącego wyrazu może nigdy nie zostać spełniony i program zapętli się. Wykonaj sumowanie, dodając limit liczby terminów do warunku pętli while funkcji pliku mysin:

while (abs (x. ^ (2 * k + 1) / silnia (2 * k + 1))> 1.0e-10) & (k<=10000))

lub w równoważnej formie

while i (abs (x. ^ (2 * k + 1) / silnia (2 * k + 1))> 1.0e-10), k<=10000)

Organizacja powtarzalnych czynności w postaci pętli sprawia, że ​​program jest prosty i zrozumiały, jednak często wymagane jest wykonanie jednego lub drugiego bloku poleceń w zależności od określonych warunków, np. użyj rozgałęzienia algorytmu.

6.3. Oświadczenie warunkowe, jeżeli

Operator warunkowy Jeśli pozwala na stworzenie algorytmu rozgałęziania wykonywania poleceń, w którym po spełnieniu określonych warunków działa odpowiedni blok operatorów lub poleceń MatLab.

Instrukcja if może być używana w swojej prostej formie do wykonywania bloku poleceń, gdy spełniony jest określony warunek, lub w konstrukcji if-elseif-else do pisania algorytmów rozgałęziających.
Niech wyrażenie zostanie ocenione. Załóżmy, że wykonujesz obliczenia w obszarze dziedzin i chcesz wyświetlić ostrzeżenie, że wynik jest liczbą zespoloną. Przed oceną funkcji należy sprawdzić wartość argumentu x i wyświetlić ostrzeżenie w oknie poleceń, jeśli moduł x nie przekracza jeden. Tutaj konieczne jest użycie operatora warunkowego, którego zastosowanie w najprostszym przypadku wygląda tak:

jeśli warunek
Polecenia MatLaba
kończyć się

Jeżeli warunek jest spełniony, to realizowane są komendy MatLab umieszczone pomiędzy if i end, a jeżeli warunek nie jest spełniony to następuje przejście do komend znajdujących się po end. Podczas rejestrowania stanu używane są operacje przedstawione w tabeli. jeden.

Funkcja pliku, która sprawdza wartość argumentu, jest pokazana na poniższej liście. Polecenie ostrzegawcze służy do wyświetlania ostrzeżenia w oknie poleceń.

Listing funkcji pliku Rfun, która sprawdza wartość argumentu

funkcja f = Rfun (x)
% oblicza sqrt (x ^ 2-1)
% wyświetla ostrzeżenie, jeśli wynik jest złożony
% wykorzystania y = Rfun (x)

% sprawdź argument
jeśli abs (x)<1
ostrzeżenie („wynik jest złożony”)
kończyć się
% oceny funkcji
f = sqrt (x ^ 2-1);

Teraz wywołanie Rfun na argumencie mniejszym niż jeden spowoduje wyświetlenie ostrzeżenia w oknie poleceń:

>> y = Rzabawa (0,2)
wynik jest złożony
y =
0 + 0.97979589711327i

Plik funkcji Rfun ostrzega tylko, że jego wartość jest złożona i wszystkie obliczenia z nim są kontynuowane. Jeżeli wynik złożony oznacza błąd obliczeniowy, to funkcję należy zakończyć poleceniem błędu zamiast ostrzeżenia.

6.4. Operator rozgałęziający if-elseif-else

Ogólnie rzecz biorąc, zastosowanie operatora oddziału if-elseif-else wygląda następująco:

jeśli warunek 1
Polecenia MatLaba
warunek elseif 2
Polecenia MatLaba
warunek elseif 3
Polecenia MatLaba
. . . . . . . . . . .
warunek elseif N
Polecenia MatLaba
w przeciwnym razie
Polecenia MatLaba
kończyć się

W zależności od wydajności jednego lub drugiego z n warunków, odpowiednia gałąź programu zostanie uruchomiona, jeśli żaden z tych n warunków, wtedy realizowane są polecenia MatLab umieszczone po else. Po wykonaniu którejkolwiek z gałęzi operator wychodzi. Może być tyle gałęzi, ile chcesz, lub tylko dwie. W przypadku dwóch rozgałęzień używany jest końcowy else, a elseif jest pomijany. Oświadczenie musi zawsze kończyć się końcem.
Przykład użycia operatora if-elseif-else pokazano na poniższej liście.

funkcja ifdem (a)
% przykład użycia operatora if-elseif-else

jeśli (a == 0)
ostrzeżenie ("równe zero")
elseif a == 1
ostrzeżenie ("jest równy jeden")
elseif a == 2
ostrzeżenie („równe dwóm”)
elseif a> = 3
ostrzeżenie („a jest większe lub równe trzy”)
w przeciwnym razie
ostrzeżenie („a jest mniejsze niż trzy, a nie równe zero, jeden, dwa”)
kończyć się

6.5. Operator oddziału przełącznik

Instrukcja switch może służyć do wykonywania wielokrotnego wyboru lub rozgałęziania. . Jest to alternatywa dla instrukcji if-elseif-else. Ogólnie rzecz biorąc, zastosowanie przełącznika rozgałęziającego operatora wygląda tak:

przełącznik switch_expression
wartość przypadku 1
Polecenia MatLaba
wartość przypadku 2
Polecenia MatLaba
. . . . . . . . . . .
wartość przypadku N
Polecenia MatLaba
przypadek (wartość N + 1, wartość N + 2, ...)
Polecenia MatLaba
. . . . . . . . . . . .
przypadek (wartość NM + 1, wartość NM + 2, ...)
Inaczej
Polecenia MatLaba
kończyć się

W tym operatorze wartość switch_expression jest najpierw oceniana (może to być skalarna wartość numeryczna lub ciąg znaków). Ta wartość jest następnie porównywana z następującymi wartościami: wartość 1, wartość 2, ..., wartość N, wartość N + 1, wartość N + 2, ..., wartość NM + 1, wartość NM + 2, ... (który może być również liczbą lub ciągiem) ... Jeśli zostanie znalezione dopasowanie, wykonywane są polecenia MatLab po odpowiednim słowie kluczowym case. W przeciwnym razie wykonywane są polecenia MatLab znajdujące się pomiędzy słowami kluczowymi else i end.

Może być dowolna liczba wierszy ze słowem kluczowym case, ale musi być jeden wiersz ze słowem kluczowym inaczej.

Po wykonaniu którejkolwiek z gałęzi następuje wyjście z przełącznika, natomiast wartości podane w pozostałych przypadkach nie są sprawdzane.

Poniższy przykład ilustruje użycie przełącznika:

wyłącznik funkcji (x)
a = 10/5 + x
przełączyć się
przypadek 1
ostrzeżenie („a = -1”)
przypadek 0
ostrzeżenie („a = 0”)
przypadek 1
ostrzeżenie („a = 1”)
sprawa (2, 3, 4)
ostrzeżenie („a to 2 lub 3 lub 4”)
Inaczej
ostrzeżenie („a nie jest równe -1, 0, 1, 2, 3, 4”)
kończyć się

>> x = -4
wyłącznik (x)
a =
1
ostrzeżenie: a = 1
>> x = 1
wyłącznik (x)
a =
6
ostrzeżenie: a nie jest równe -1, 0, 1, 2, 3, 4

6.6. Instrukcja przerwania pętli złamać

Organizując obliczenia cykliczne, należy zachować ostrożność, aby uniknąć błędów w pętli. Załóżmy na przykład, że masz tablicę x składającą się z liczb całkowitych i musisz utworzyć nową tablicę y zgodnie z regułą y (i) = x (i + 1) / x (i). Oczywiście zadanie można wykonać za pomocą pętli for. Ale jeśli jeden z elementów oryginalnej tablicy jest równy zero, to dzielenie da w wyniku inf, a dalsze obliczenia mogą być bezużyteczne. Sytuacji tej można zapobiec poprzez wyjście z pętli, jeśli bieżąca wartość x (i) jest równa zero. Poniższy fragment kodu demonstruje użycie instrukcji break do przerwania pętli:

dla x = 1:20
z = x-8;
jeśli z == 0
złamać
kończyć się
y = x / z
kończyć się

Jak tylko z stanie się 0, pętla zostaje przerwana.

Instrukcja break pozwala na przedwczesne przerwanie wykonywania pętli for i while. Poza tymi pętlami instrukcja break nie działa.

Jeśli instrukcja break jest używana w pętli zagnieżdżonej, wychodzi tylko z pętli wewnętrznej.