Podstawowe operacje na macierzach, operacje we/wy

Podobne dokumenty
Wprowadzenie do Scilab: macierze

Metody i analiza danych

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Wprowadzenie do Scilab: macierze

MATLAB - laboratorium nr 1 wektory i macierze

Podstawowe operacje na macierzach

Metody numeryczne Laboratorium 2

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Wprowadzenie do środowiska

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Wprowadzenie do Scilab: macierze

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:

Programowanie 3 - Funkcje, pliki i klasy

Pliki. Informacje ogólne. Obsługa plików w języku C

Ćwiczenie 1. Wprowadzenie do programu Octave

Algebra macierzy

Obliczenia w programie MATLAB

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Elementy metod numerycznych - zajęcia 9

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Ćwiczenie 3: Wprowadzenie do programu Matlab

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

MATLAB Podstawowe polecenia

WPROWADZENIE DO ŚRODOWISKA SCILAB

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Programy wykorzystywane do obliczeń

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Wprowadzenie do Mathcada 1

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Programowanie w języku Python. Grażyna Koba

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Ćwiczenie 1. Wprowadzenie do programu Octave

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

I. Podstawy języka C powtórka

Przetwarzanie sygnałów

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Wprowadzenie do programu Mathcad 15 cz. 1

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Matlab Składnia + podstawy programowania

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Programowanie w języku Java

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

Wykorzystanie programów komputerowych do obliczeń matematycznych

Zad. 3: Układ równań liniowych

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

Autor: dr inż. Katarzyna Rudnik

Wykład 4. Tablice. Pliki

Programowanie w Scilab

Zanim zaczniemy GNU Octave

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Instalacja

Wprowadzenie do programowania w SciLab: typy danych, wyrażenia, operatory, funkcje własne, skrypty.

INFORMATYKA Studia Niestacjonarne Elektrotechnika

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Lab 9 Podstawy Programowania

Ekoenergetyka Matematyka 1. Wykład 3.

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

1 Macierze i wyznaczniki

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Programowanie w językach wysokiego poziomu

Podstawy Programowania C++

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Kier. MTR Programowanie w MATLABie Laboratorium

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Pliki. Informacje ogólne. Obsługa plików w języku C

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

1 Zbiory i działania na zbiorach.

Analiza matematyczna i algebra liniowa Macierze

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków

Wprowadzenie do systemu Scilab

Re +/- Im i lub Re +/- Im j

Struktury, unie, formatowanie, wskaźniki

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Macierze. Rozdział Działania na macierzach

Treści programowe. Matematyka. Efekty kształcenia. Literatura. Terminy wykładów i ćwiczeń. Warunki zaliczenia. tnij.org/ktrabka

Metody optymalizacji - wprowadzenie do SciLab a

Notatki z Matlaba. Rafał Zduńczyk. January 6, 2018

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

Ćwiczenia Skopiować do swojego folderu plik cwiczenia-kl.ii.xls, a następnie zmienić jego nazwę na imię i nazwisko ucznia

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

lekcja 8a Gry komputerowe MasterMind

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Transkrypt:

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 1 Podstawowe operacje na macierzach, operacje we/wy Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 2 Plan zajęć Definicja tablic Indeksowanie tablic Modyfikacja tablic Określanie rozmiaru tablicy Działania na macierzach Funkcje operujące na macierzach Operacje wejścia/wyjścia Plik dziennika Zapisywanie i wczytywanie zmiennych Zapisywanie do pliku tekstowego Zapisywanie formatowane do pliku tekstowego Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 3 Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 4 Definicja tablic Początek definicji tablicy to otwierający nawias kwadratowy - [. Kolejne wiersze rozdzielamy średnikiem - ;. Kolejne elementy wierszy rozdzielamy przecinkiem lub spacją -, lub Koniec definicji tablicy to zamykający nawias kwadratowy - ]. Przykład: A = [1,2,3; 4 5 6; 7, 8, 9] A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.! Uwaga! - Definicja nie musi być wpisana w jednej linii.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 5 Definicja tablic Funkcja zeros() definiuje tablice zer o podanych jako argumenty wymiarach. Funkcja ones() definiuje tablice jedynek o podanych jako argumenty wymiarach. Funkcja rand() definiuje tablice z liczbami losowymi (z przedziału od 0 do 1) o podanych jako argumenty wymiarach. Funkcja eye() definiuje tablice z 1 na głównej przekątnej o podanych jako argumenty wymiarach. Przykład: A = zeros(2,2) A =! 0. 0.!! 0. 0.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 6 Definicja tablic Przykład c.d.: B = ones(2,2) B =! 1. 1.!! 1. 1.! C = rand(2,2) C =! 0.2113249 0.0002211!! 0.7560439 0.3303271!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 7 Definicja tablic Przykład c.d.: D = eye(3,3) D =! 1. 0. 0.!! 0. 1. 0.!! 0. 0. 1.! Ćwiczenie 1 Zdefiniuje macierz o wymiarach 6 na 6 całkowitych liczb losowych. Uwaga! - Skorzystaj z funkcji int(), oraz round().

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 8 Polecenia D = int(100*rand(6,6)) D = Ćwiczenie 1! 28. 15. 11. 50. 37. 53.!! 12. 69. 19. 34. 73. 11.!! 77. 84. 56. 38. 26. 22.!! 21. 40. 58. 92. 49. 62.!! 11. 40. 68. 94. 26. 76.!! 68. 87. 89. 34. 52. 4.! D = round(100*rand(6,6)) Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 9 Definicja tablic Tablice mogą zawierać liczby, wartości logiczne, ciągi znaków i wielomiany. Tablica może zawierać jeden typ danych. Przy definicji tablicy można wykorzystać istniejącą tablice Przykład: D = ['xyz'; 'abcd'] D =! xyz!! abcd! E = [%f; %t] E =! F!! T!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 10 Definicja tablic Przykład c.d.: b1 = [1 2 3]; b2 = [4, 5, 6]; B = [b1; b2] B =! 1. 2. 3.!! 4. 5. 6.! A = [B; 7 8 9] A =! 1. 2. 3.!! 4. 5. 6.!! 7. 8. 9.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 11 Przykład c.d.: E = [1/%s (%s^2)+%s] E =! 2!! 1 s + s!! - -----!! s 1! Definicja tablic Ćwiczenie 2 Zdefiniuj tablice jednowymiarową o 5 elementach, której elementy będą kolejnymi liczb naturalnymi. Utwórz tablicę 2x2 z liczbami:, e, oraz - 1 Utwórz tablice z dwoma elementami, zawierającymi twoje imię i nazwisko. Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 12 Polecenia Ćwiczenie 2 G = [1:1:5] G =! 1. 2. 3. 4. 5.! H = [%pi %e; %i -%inf] K =! 3.1415927 2.7182818!! i -Inf! K = ['Imie', 'Nazwisko'] K =! 'Imie' 'Nazwisko'! Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 13 Indeksowanie tablic Do elementów tablicy odwołujemy się podając jego numer wiersza i kolumny w nawiasach okrągłych (wiersz, kolumna), lub tylko numer kolejnego wyrazu (kolejne kolumny tablicy traktowane są jako jedna kolumna). Znak dolara $ oznacza koniec kolumny lub wiersza. Dwukropek oznacza całą kolumnę lub wiersz - :. Zakres wierszy lub komórek definiujemy podając tablicę kolejnych indeksów ([początek,..., koniec ], [początek,..., koniec ]). Indeksowanie za pomocą tablicy wartości logicznych odpowiadających poszczególnym elementom tablicy. Przykład: A = [1,2,3; 4 5 6; 7, 8, 9]; A(2,2) ans = 5.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 14 Indeksowanie tablic Przykład c.d.: A(9) ans = 9. A(:,3) ans =! 3.!! 6.!! 9.! A(1:2,[2, 3]) ans =! 2. 3.!! 5. 6.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 15 Indeksowanie tablic Przykład c.d.: A([%t %f %t], [%t %f %t]) ans =! 1. 3.!! 7. 9.! A([1 3], $:-1:2) ans =! 3. 2.!! 9. 8.! A($) ans = 9.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 16 Modyfikacje tablic Dowolny element tablicy lub zakres elementów może być modyfikowany. Zakres do modyfikacji podajemy indeksując tablicę. Nową wartość elementu tablicy przypisujemy za pomocą standardowego operatora przypisania. Zakres przypisywany musi mieć ten sam wymiar co wskazany obszaru tablicy. Przykład: A = [1,2,3; 4 5 6; 7, 8, 9]; A(1,1) = 77 A =! 77. 2. 3.!! 4. 5. 6.!! 7. 8. 9.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 17 Modyfikacje tablic Przykład c.d.: A([%f %t %t], 2:1:$) = [ 71 72; 73 74] A =! 1. 2. 3.!! 4. 71. 72.!! 7. 73. 74.! Ćwiczenie 3 Utwórz tablicę o wymiarach 10x10, której wszystkie elementy to jedynki a pierwsze i ostatni wiersz i kolumna to zera. Uwaga! - Nie wpisuj jawnie wszystkich 100 elementów tej tablicy. Posłuż się funkcjami zeros() i ones().

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 18 Polecenia Ćwiczenie 3 X = zeros(10,10); X(2:1:$-1,2:1:$-1) = ones(8,8) X =! 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 1. 1. 1. 1. 1. 1. 1. 1. 0.!! 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.! Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 19 Określanie rozmiaru tablicy Funkcja size() zwraca tablicę z wymiarami podanej jako argument tablicy. Funkcja length() zwraca ilość elementów podanej jako argument tablicy. Przykład: A = [1,2,3; 4 5 6; 7, 8, 9]; size(a) ans =! 3. 3.! length(a) ans = 9

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 20 Działania na macierzach mnożenie macierzy przez liczbę A*x transpozycja A' suma A+B mnożenie A*B iloraz lewostronny A/B iloraz prawostronny A\B potęgowanie A^x mnożenie elementów macierzy A.*B iloraz lewostronny elementów macierzy A./B iloraz prawostronny elementów macierzy A.\B potęgowanie elementów macierzy A.^x Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 21 Działania na macierzach Przykład: A = [3 3 5; 1-2 1; 0 1 2] A =! 3. 3. 5.!! 1. - 2. 1.!! 0. 1. 2.! A' ans =! 3. 1. 0.!! 3. - 2. 1.!! 5. 1. 2.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 22 Działania na macierzach Przykład c.d.: B = [2 7 0; 3 6 6; 8 6 8]; A + B ans =! 5. 10. 5.!! 4. 4. 7.!! 8. 7. 10.! A * B ans =! 55. 69. 58.!! 4. 1. - 4.!! 19. 18. 22.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 23 Działania na macierzach Przykład c.d.: A / B ans =! - 0.21875 0.5208333 0.234375!! - 0.34375-0.2291667 0.296875!! - 0.1875 0.5416667-0.15625! A \ B ans =! - 5.6875-2.3125-6.125!! - 1.875-2.125-3.25!! 4.9375 4.0625 5.625!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 24 Działania na macierzach Przykład c.d.: A ^ 3 ans =! 44. 48. 124.!! 11. - 8. 23.!! 3. 8. 15.! A.* B ans =! 6. 21. 0.!! 3. - 12. 6.!! 0. 6. 16.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 25 Działania na macierzach Przykład c.d.: A.^ 3 ans =! 27. 27. 125.!! 1. - 8. 1.!! 0. 1. 8.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 26 Utwórz dwie macierze: Działania na macierzach Ćwiczenie 4 Wykonaj na nich operacje następujące operacje: przemnóż macierz A przez liczbę i przypisz do zmiennej C spierwiastkuj elementy B macierzy i zapisz jako macierz D przemnóż macierz A przez macierz jednostkową o wymiarach 2x2 przemnóż macierz C i D A= 3 6 7 2 4 B= 9 4 3 5 1 Przemnóż macierz B przez transponowaną A i zapisz jako E Podziel lewostronnie macierz macierz E przez transpozycje A Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 27 Działania na macierzach Ćwiczenie 4 A = [3 6; -2 4; 1 7]; B = [9-4; -3 5]; C = A*%pi C =! 9.424778 18.849556!! - 6.2831853 12.566371!! 3.1415927 21.991149! D = B.^ 0.5 D =! 3. 1.225E-16 + 2.i!! 1.061E-16 + 1.7320508i 2.236068!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 28 A * eye(2,2) ans =! 3. 6.!! - 2. 4.!! 1. 7.! Działania na macierzach Ćwiczenie 4 A = C * D ans =! 28.274334 + 32.648389i 42.148888 + 18.849556i!! - 18.849556 + 21.765592i 28.099259-12.566371i!! 9.424778 + 38.089787i 49.173703 + 6.2831853i! Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 29 E =B * A' E =! 3. - 34. - 19.!! 21. 26. 32.! Działania na macierzach Ćwiczenie 4 E / A' ans =! 9. - 4.!! - 3. 5.! Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 30 Funkcje operujące na macierzach Funkcja inv() oblicza macierz odwrotną Funkcja trace() oblicza ślad macierzy Funkcja sum() oblicza sumę elementów macierzy Funkcja prod() oblicza iloczyn elementów macierzy Funkcja det() oblicza wyznacznik macierz Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 31 Przykład: A = [3 3 5; 1-2 1; 0 1 2]; Funkcje operujące na macierzach inv(a) ans =! 0.3125 0.0625-0.8125!! 0.125-0.375-0.125!! - 0.0625 0.1875 0.5625! clean(a * inv(a)) ans =! 1. 0. 0.!! 0. 1. 0.!! 0. 0. 1.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 32 Funkcje operujące na macierzach Przykład c.d.: trace(a) ans = 3. C = ones(5,5); sum(c) ans = 25. prod(c) ans = 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 33 Funkcje operujące na macierzach Przykład c.d.: det(a) ans = 16. Ćwiczenie 5 Wykonaj następujące operacje na macierzy A z powyższego przykładu i macierzy B z Ćwiczenia 4: oblicz wyznacznik z macierzy B oblicz macierz odwrotną do macierzy A

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 34 det(b) ans = 33. Funkcje operujące na macierzach Ćwiczenie 5 inv(a) ans =! 0.3125 0.0625-0.8125!! 0.125-0.375-0.125!! - 0.0625 0.1875 0.5625! Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 35 Operacje wejścia/wyjścia Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 36 Operacje wejścia/wyjścia Plik dziennika Przebieg sesji SciLab można zapisać do pliku, tzw. dziennika Plik dziennika definiujemy za pomocą funkcji diary(), jako jej argument podajemy nazwę pliku dziennika. Wywołanie funkcji diary() z argumentem 0 zatrzymuje zapis sesji. Plik dziennika może służyć do, np.: przygotowania opracowania z przeprowadzanych obliczeń łatwego tworzenie funkcji i procedur na bazie wykonanych poleceń Przykład: diary('~/lab_9-sesja_scilab.sci'); A = [1 2; 3 4]; diary(0);

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 37 Operacje wejścia/wyjścia Przykład c.d.: $ cat ~/Lab_9-sesja_SciLab.sci Plik dziennika -->A = [1 2; 3 4]; -->diary(0); Ćwiczenie 6 Za pomocą rejestracji sesji i pliku dziennika utwórz plik zawierający funkcję tworzącą podaną niżej tablicę: 1 2 3 9 10 1 1 2 3 9 10 2 2 4 6 18 20 3 3 6 9 27 30 9 9 18 27 81 90 10 10 20 30 90 100

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 38 Operacje wejścia/wyjścia diary('~/tabliczka_mnozenia.sci'); Plik dziennika Ćwiczenie 6 v = [1:10]; TM = v' * v; diary(0) -- function [TM]=tm() v = [1:10]; TM = v' * v; endfunction

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 39 Operacje wejścia/wyjścia Zapisywanie i wczytywanie zmiennych Dowolną zmienną można zapisać za pomocą funkcji save(). Jej pierwszy argument to nazwa pliku w którym zostaną zapisane zmienne a kolejne argumenty to zapisywane zmienne. Utworzony plik jest plikiem binarnym. Zapisane do pliku zmienne wczytujemy za pomocą funkcji load(). Przykład: A = [1. 2. 3.; -3. 4. 5.; 2. 4. 5.; 1. 3. 2.]; b = 1:10; save('~/zmienneab.dat', A,b); clear; A!--error 4 undefined variable : A

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 40 Operacje wejścia/wyjścia Zapisywanie i wczytywanie zmiennych Przykład c.d.: b!--error 4 undefined variable : b load('~/zmienneab.dat'); A A =! 1. 2. 3.!! - 3. 4. 5.!! 2. 4. 5.!! 1. 3. 2.!

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 41 Operacje wejścia/wyjścia Zapisywanie i wczytywanie zmiennych Przykład c.d.: b b =! 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.! Ćwiczenie 7 Utwórz trzy dowolne zmienne: tekstową, liczbową i tablicową, zapisz do pliku. Usuń zdefiniowane zmienne i następnie wczytaj je.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 42 Operacje wejścia/wyjścia Zapisywanie do pliku tekstowego Funkcja print() pozwala na niesformatowany wydruk tekstowy na podane urządzenie (ekran, plik, itp). zmienna %io zawiera definicje standardowych urządzeń odczytu i zapisu [5 6]. Domyślnie okno SciLab dla wejścia to 5 a dla wyjścia 6. Przykład: x = 7; y = cos(%pi*x/10); print(%io(2),x,y); y = - 0.5877853 x = 7. print('~/wydruk_xy',x,y);

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 43 Operacje wejścia/wyjścia Zapisywanie do pliku tekstowego Przykład c.d.: $ cat ~/wydruk_xy y = - 0.5877853 x = 7. Ćwiczenie 8 Zapisz do pliku tekstowego trzy zmienne zdefiniowane w Ćwiczeniu 7.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 44 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Funkcja file() służy manipulowania plikami dyskowymi. Pierwszy argument funkcji określa operacje jaką chcemy przeprowadzić na pliku: 'open' otwiera plik, drugi argument to nazwa pliku, trzeci tryb otwarcia 'new' tworzy nowy plik 'old' otwiera istniejący plik 'unknown' otwiera istniejący lub nie istniejący plik Wynik funkcji to urządzenie-plik. 'close' zamyka plik, drugi argument to zmienna z urządzeniem-plikiem. 'rewind' przewija plik na początek, drugi argument to zmienna z urządzeniem-plikiem. 'backspace' - przewija plik o jedną linię, drugi argument to zmienna z urządzeniemplikiem. 'last' przewija plik na koniec, drugi argument to zmienna z urządzeniem-plikiem. Funkcja write() zapisuje do otwartego pliku. Jej pierwszy argument to zmienna z urządzeniem-plikiem, kolejne to dane do zapisania a ostatni opis formatu zapisu. Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 45 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Funkcja read() czyta z otwartego pliku. Jej pierwszy argument to zmienna z urządzeniemplikiem, drugi to liczba kolumn a trzeci wierszy tablicy danych w pliku (jeżeli nie znamy liczby wierszy możemy podać -1), ostatni opis formatu zapisu. Opis formatu to ciąg znaków rozpoczynający się nawiasem okrągłym otwierającym i kończący nawiasem okrągłym zamykającym. Kolejne pola rozdzielamy przecinkiem. Symbole formatowania: / nowa linia in liczba całkowita o n liczbie cyfr fn.m liczba zmiennoprzecinkowa o n liczbie cyfr i m znaczących miejscach po przecinku en.m liczba zmiennoprzecinkowa w zapisie wykładniczym o n liczbie cyfr i m znaczących miejscach po przecinku nx n spacji Funkcja dispfiles() wyświetla informacje o otwartych plikach Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 46 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Przykład: dane = [1.756, 34.23; 2 271e-3]; u = file('open','~/dane.txt','new'); dispfiles File name Unit Type Options --------------------------------------------- /home/wiera/dane.txt 1 F77 new formatted Input 5 F77 old formatted Output 6 F77 new formatted write(u,dane,'(2x,f7.3,2x,f7.3)'); file('close',u);

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 47 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Przykład c.d.: dispfiles File name Unit Type Options --------------------------------------------- Input 5 F77 old formatted Output 6 F77 new formatted Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 48 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Przykład c.d.: u = file('open','~/dane.txt','old'); dispfiles File name Unit Type Options --------------------------------------------- /home/wiera/dane.txt 1 F77 old formatted Input 5 F77 old formatted Output 6 F77 new formatted nowe_dane = read(u,-1,2,'(2x,f7.3,2x,f7.3)'); nowe_dane =! 1.756 34.23!! 2. 0.271! file('close',u);

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 49 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Przykład c.d.: dispfiles File name Unit Type Options --------------------------------------------- Input 5 F77 old formatted Output 6 F77 new formatted Ćwiczenie 8 Zapisz do pliku tabliczka.txt tablice generowaną przez funkcję zdefiniowaną w Ćwiczeniu 6. Sformatuj zapis tak aby każde pole liczyło 5 znaków. Otwórz plik tabliczka.txt i wczytaj jego zawartość do zmiennej Tabliczka. Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 50 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Ćwiczenie 8 u = file('open','~/tabliczka.txt','new'); write(u,tm(),'(5i5)'); file('close',u); -- $ cat tabliczka.txt 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 [...] 10 20 30 40 50 60 70 80 90 100 -- u = file('open','~/tabliczka.txt','old');

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 51 Operacje wejścia/wyjścia Zapisywanie formatowane do pliku tekstowego Ćwiczenie 8 Tabliczka = read(u,-1,10) Tabliczka =! 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.!! 2. 4. 6. 8. 10. 12. 14. 16. 18. 20.!! 3. 6. 9. 12. 15. 18. 21. 24. 27. 30.!! 4. 8. 12. 16. 20. 24. 28. 32. 36. 40.!! 5. 10. 15. 20. 25. 30. 35. 40. 45. 50.!! 6. 12. 18. 24. 30. 36. 42. 48. 54. 60.!! 7. 14. 21. 28. 35. 42. 49. 56. 63. 70.!! 8. 16. 24. 32. 40. 48. 56. 64. 72. 80.!! 9. 18. 27. 36. 45. 54. 63. 72. 81. 90.!! 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.! Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 52 Operacje wejścia/wyjścia Podstawienie pod zmienną wartości wprowadzonej z klawiatury Operacje okienkowe Funkcja disp() przykład: (wyświetlenie wartości zmiennej x): disp('x= ', x) Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 53 Operacje wejścia/wyjścia Podstawienie pod zmienną wartości wprowadzonej z klawiatury Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 54 Operacje wejścia/wyjścia Wyświetlenie wartości zmiennej na ekranie Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 55 Operacje wejścia/wyjścia Przykład: obliczenie sumy i różnicy dwóch liczb a = input('podaj wartość a = ') b = input('podaj wartość b = ') disp(a+b, 'a + b = ') lub a = evstr (x_dialog('podaj wartość a = ') ) b = evstr (x_dialog('podaj wartość b = ') ) x_message ('a + b = ' + string (a + b) ) Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 56 Operacje wejścia/wyjścia Okienko wyboru opcji Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 57 Literatura i materiały uzupełniające SciLab Help, INRIA (Menu Help->Help Browser) Materiały podstawowe Introduction to Scilab, INRIA (ftp://ftp.inria.fr/inria/scilab/documentation/pdf/intro.pdf) Input/Output and file manipulation, Gilberto E. Urroz (http://www.engineering.usu.edu/cee/faculty/gurro/software_calculators/scilab_docs/scilab_documents/ ScilabIO_new.pdf) SCILAB Input/Output functions - summary from SCILAB help facility, Gilberto E. Urroz (http://www.engineering.usu.edu/cee/faculty/gurro/software_calculators/scilab_docs/ SCILABIOcommands.pdf) Zakład Komputerowego Wspomagania Projektowania Semestr 1.

26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 58 Literatura i materiały uzupełniające Materiały uzupełniające SCILAB scripts, Basic scripts, SCILAB programming - Ch. 2, Gilberto E. Urroz (http://www.engineering.usu.edu/cee/faculty/gurro/software_calculators/scilab_docs/ Scilab_scripts/Programming_Script.sce) SCILAB scripts, Numerical methods, Matrix and linear algebra - Ch. 5, Gilberto E. Urroz (http://www.engineering.usu.edu/cee/faculty/gurro/software_calculators/scilab_docs/ Scilab_scripts/Matrices_Script.sce) Zakład Komputerowego Wspomagania Projektowania Semestr 1.