% Matlab_example--sent % interpreter polecen (natychmiastowa ewaluacja) 5+4*2 ans format compact format short; % ";" 5+4*2; ans % odpornosc na sytuacje "nieobliczalne" (Inf, -Inf, NaN) 5+4*0 5+4/0 5-4/0 5+0/0 inv(0) warning off % "%" % imetoda obslugi interpretera (schowek) 5+4*0 5+4/0 5-4/0 5+0/0 % zmienne a = 5+4*0 b = 5+4*inv(0) whos a whos a clear all; % format "naukowy" 10000000000000000 1e16 1/10000000000000000 1e-16 % problem tzw. "zera numerycznego" 1.23456789e-32 % c.d.n. % notacja wektorowo-macierzowa k = [1;2;3] k' u = k' w = [1 2 3] % w = [1,2,3] A = [1 2 3; 4 5 6] A' [A;A] [A A] B = [A;A] C = [[B;A] [B;A]] % operatory: skladowe wyrazen (razem z funkcjami) % cechy operatorow % -- parametry wejsciowe (binarne): skalarne, wektorowe, macierzowe, ... % -- parametry wyjsciowe (jednokrotne): skalarne, wektorowe, macierzowe, ... k k*2 %k*k %!!! k'*k k*k' A A*2 %A*A %!!! A'*A A*A' A*k k'*A' % adresowanie macierzy % -- ( wiersze, kolumny ) % -- indeksowanie od 1 C C(1,1) C(1:2,1) C(1:2,1:2) C(3:4,2:5) C(:,:) C(:,4) C(4,:) % funkcje adresujace/przeksztalcajace C d = diag(C) diag(d) % funkcje generujace wektory/macierze k = ones(5,1) w = zeros(1,3) k = rand(6,1) w = randn(1,10) % funkcje generujace wykresy slupkowe (dane jednowymiarowe) figure(1); bar(k) figure(2); bar(w) tilefigs; close all; % funkcje generujace wektory/macierze, c.d. (macierze dowolne) X = ones(5,3) X = ones(50,30) X = rand(10,2) X = randn(10,2) % funkcje generujace wektory/macierze, c.d. (macierze kwadratowe) X = eye(2) X = eye(5) % diag(ones(5,1)) % funkcje generujace wykresy rozrzutu (dane dwuwymiarowe) X = rand(1e2,2); Y = randn(1e2,2); figure(1); scatter(X(:,1),X(:,2),9,'k','filled'); axis([-5 +5 -5 +5]) figure(2); scatter(Y(:,1),Y(:,2),9,'k','filled'); axis([-5 +5 -5 +5]) tilefigs; close all; X = rand(1e5,2); Y = randn(1e5,2); figure(1); scatter(X(:,1),X(:,2),9,'k','filled'); axis([-5 +5 -5 +5]) figure(2); scatter(Y(:,1),Y(:,2),9,'k','filled'); axis([-5 +5 -5 +5]) tilefigs; close all; % funkcje obliczeniowe (macierze dowolne) k = ones(5,1) sum(k) prod(k) whos C sum(C) sum(C') mean(C) mean(C') mean(X) var(X,1) mean(Y) var(Y,1) cov(X,1) cov(Y,1) mean(X) var(X,1) cov(X,1) diag(cov(X,1))' mean(X) cov(X,1) norm(X,'fro') norm(Y,'fro') % funkcje obliczeniowe (macierze kwadratowe) whos C det(C) trace(C) diag(C)' sum(diag(C)) % det(X) %!!! X'*X det(X'*X) % inv(X) %!!! inv(X'*X) % problem tzw. "zera numerycznego", c.d. w = eig(hilb(100)); w' w(1:10)' format long w(1:10)' format short % funkcje: skladowe wyrazen (razem z operatorami) % cechy funkcji % -- parametry wejsciowe (wielokrotne): skalarne, wektorowe, macierzowe, ... % -- parametry wyjsciowe (wielokrotne): skalarne, wektorowe, macierzowe, ... size(B) [m,n] = size(B) x = rand(1,5) y = sort(x) [y,idx] = sort(x) [~,idx] = sort(x) [y,~] = sort(x) sort(x,'descend') % wyniki funkcji moga zalezec od liczby parametrow wejsciowych, jak i wyjsciowych % polecenia / funkcje rozne % polecenia (standardowe) % clc % hold on / off % close % axis % funkcje standardowe % save % load % nowe funkcje % centralize(X); % (funkcja odejmujaca od kazdej kolumny srednia tej kolumny) % normalize(X); % (funkcja: % -- odejmujaca od kazdej kolumny srednia tej kolumny % -- dzielaca kazda kolumne przez odchylenie standardowe tej kolumny % ) % fig_scatter(1,XA(:,1),XA(:,2),5): % figure(1); % scatter(X(:,1),X(:,2),9,'k','filled'); % axis([-5 +5 -5 +5]) % draw_big_arrow2 % (funkcja rysujaca strzalke) % postac skryptow/funkcji % pliki *.m % pliki *.dry