91

samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

Page 2: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

samplePolynomial

polyCoeff

interval

xx yy

๐‘ฆ = ๐ถ 1 ๐‘ฅ๐‘›โˆ’1 + ๐ถ 2 ๐‘ฅ๐‘›โˆ’2 + โ€ฆ+ ๐ถ ๐‘› โˆ’ 1 ๐‘ฅ1 + ๐ถ(๐‘›)

Page 3: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

function [xx, yy] =

samplePolynomial(polyCoeff, interval)

% per essere certi che a <= b

a = min(interval);

b = max(interval);

xx = [a : (b-a) / 100 : b];

% oppure xx = linspace(a , b, 100)

yy = zeros(size(xx));

for ii = 1 : 1 : length(polyCoeff)

yy = yy + polyCoeff(ii) *

xx.^(length(polyCoeff) - ii);

end

Page 4: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 5: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

zeros (n) ร—

zeros (m,n) ร—

zeros(size(arr)) arr

ones(n) ร—

ones(m,n) ร—

ones(size(arr))

eye(n) ร—

eye(m,n) ร—

length(arr)

size(arr)

Page 6: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข a = zeros(2);

โ€ข b = ones(2,3);

โ€ข c = [1 2; 3 4];

d = zeros(size(c));

โ€ข e = 2 * eye(2)

Page 7: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

ceil(x)

floor(x)

fix(x)

[m, pos] = max(x)

[m, pos] = min(x)

mean(x)

mod(m, n)

round(x)

rand(n)

Page 8: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

min max)

>> a = [24 28 21; 32 25 27; 30 33 31; 22 29 26]

a = 24 28 21

32 25 27

30 33 31

22 29 26

>> min(a)

ans = 22 25 21

>> [x y] = min(a)

x = 22 25 21

y = 4 2 1

>> b = [4 7 2 6 5]

b = 4 7 2 6 5

>> min(b)

ans = 2

>> [x y] = min(b)

x = 2

y = 3

>>

Page 9: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

sum(vettore) vettore

prod(vettore) vettore

function k = fattoriale2(n)

k = prod([n : -1 : 1]);

Page 10: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข length(v)

โ€ข size(A)

A

โ€ข size(A, dim) A

dim

length(A) == max(size(A))

Page 11: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 12: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

all(x)

any(x)

isinf(x) Inf

isempty(x)

isnan(x) NaN

finite(x)

ischar(x)

isnumeric(x)

isreal(x)

Page 13: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

indx = find(x) true

x

>> a = [5 6 7 2 10];

>> b = a > 5; % b =[0 1 1 0 1]

>> find(b)

ans = 2 3 5

>> a = [5 6 7 2 10]

>> find(a > 5)

ans = 2 3 5

find(expr) find(logical)

find

Page 14: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข find

x = [5, -3, 0, 0, 8];

y = [2, 4, 0, 5, 7];

vals = y((x>0) & (y>0)) -> vals = [2 7]

idx = find((x>0) & (y>0))-> idx = [1 5]

โ€ข

k = x(find(x>0)) %lento

k = x(x>0) %veloce

find

Page 15: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

cerca x

vett

function [pres, pos] = cerca(x, vett)

p = 0;

pos = [];

for ii = 1:length(vett)

if vett(ii) == x

p = p+1;

pos(p) = ii;

end

end

pres = p > 0;

Page 16: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

>> A = [1, 2, 3, 4, 3, 4, 5, 4, 5, 6]

A = 1 2 3 4 3 4 5 4 5 6

>> [p, idx] = cerca(4, A)

p = 1

idx = 4 6 8

cerca:

cerca:

x, vet

4, A

Page 17: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

cerca x

vett

function [pres, pos] = cerca2(x, v)

pres = 1;

pos = find(v == x);

if isempty(pos)

pres = 0;

endfunction [pres, pos] = cerca3(x, v)

pres = any(v == x);

pos = find(v == x);

Page 18: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

closestVal

vett x

x

function [closest, pos_closest] = ...

closestVal(vett, val)

diff = vett - val;

abs_diff = abs(diff);

[~ , pos_closest] = min(abs_diff);

closest = vett(pos_closest);

closest = unique(closest); % returns unique

values in a vector

Page 19: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

v = [12, 4, 7, 14]

function vettore = rimuovi7(vettore)

vettore(vettore == 7) = [];

>> v = [12, 4, 7, 14]

>> disp(v)

>> v = rimuovi7(v);

>> disp(v)

Page 20: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 21: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 22: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 23: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

comp = strcmp(str1, str2)

โ€ข str1, str2

โ€ข comp

strcmpi(str1, str2)

==,

Page 24: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

if('cane' == 'canguroโ€™)

disp('uguali')

else

disp('diverse')

End

>> Error using ==

Matrix dimensions must agree.

if strcmp('cane', 'canguro')

disp('uguali')

else

disp('diverse')

end

>> diverse

Page 25: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

strlen length size

strcpy

idx = strfind(test, pattern)

โ€ข pattern

โ€ข text

โ€ข idx

Page 26: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

function [p, m] = cercaMultiplo(v, a)

for k = 1:length(a)

if mod(a(k), v) == 0

p = k;

m = a(k);

return; %restituisce il primo

multiplo incontrato

end;

end;

p = 0; m = 0; %eseguite solo se non trovato

alcun multiplo

Page 27: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข strcmpr

โ€ข any

โ€ข all

replacePattern

txt,

s1 s2

s1 s2

replacePattern

strrep

Page 28: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 29: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข input

a = input(txtToShow)

txtToShow

a

a = input(txtToShow, โ€™sโ€™)

txtToShow

a

โ€ข num2str(A) A

Page 30: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

;

โ–ช disp()

โ–ช fprintf()

disp fprintf

Page 31: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

u = input(' inserire vettore: ');

v = input(' inserire vettore: ');

u = u(:)';

v = v(:)';

% in questo modo u e v saranno vettori riga

if (u > v)

disp([num2str(u) ' รจ sempre maggiore di '

num2str(v)]);

elseif(u < v)

disp([num2str(u) ' รจ sempre minore di โ€˜

num2str(v)]);

elseif(u == v)

disp([num2str(u) ' e ' num2str(v) '

coincidono']);

else

disp([num2str(u) ' ha valori sia maggiori che

minori di ' num2str(v)]);

end

Page 32: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช save

โ€ข save filename

โ€ข save(โ€˜filenameโ€™, โ€˜array1โ€™ ,โ€™array2โ€™)

array1 array2

โ–ช

โ–ช

โ–ช

Page 33: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

โ–ช

โ–ช

save(fileName, varNames, ..., format)

x = [1.23 3.14 6.28; -5.1 7.00 0];

save(โ€˜filename.datโ€™, โ€˜xโ€™, โ€˜-asciiโ€™);

Page 34: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช load

โ€ข load filename

โ€ข load filename x y

x y

โ€ข S = load(filename);

S

โ–ช

โ€ข load filename.dat:

Page 35: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช xlsread()

โ€ข xlsread(filename)

โ€ข xlsread(filename, sheet)

sheet filename

โ€ข xlsread(filename, sheet, range)

sheet range

M = xlsread(โ€˜datiโ€™, โ€˜Sheet1โ€™, โ€˜A1:D24โ€™);

Page 36: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 37: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข

โ€ข

โ€ข

Page 38: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

f = @nome_funzione

โ€ข f

โ€ข nome_funzione

>> seno = @sin

seno = @sin

>> seno(pi/2)

ans = 1

Page 39: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

f = @(x, y, ...)<expr>

โ€ข x, y, ...

โ€ข <expr>

Page 40: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

>> sq = @(x)(x^2)

sq = @(x)x^2

>> sq(8)

ans = 64

Page 41: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

% definizione della funzione inline

h = @(x)(-x)

% valutazione della funzione h nei punti 2 e 9

h(2); h(9);

% g che viene definita in maniera tale da operare su

vettori

g = @(x)(x.^2)

g(2)

g([2 : 2])

g([-2 : 2])

% รจ possibile "comporre" le funzioni (si da l'output

di g come input di h)

h(g([-2 : 2]))

% NB: non รจ possibile sommare i function handles

g + h

Undefined operator '+' for input arguments of type

'function_handle'.

Page 42: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 43: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข f

f

โ€ข f

Page 44: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

quad = @(x)(x.^2)

% o alternativamente

function y = elevaAlQuadrato(x)

y = x.^2;

g

elevaAlQuadrato

% faccio una funzione di ordine superiore

per valutare se una funzione รจ idempotente (se

f(f(x)) == f(x)) in un punto x (usando gli handles)

function res = controllaSeIdempotente(f , x)

if ( f(f(x)) == f(x))

res = 1;

else

res = 0;

end

Page 45: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

% chiamata della funzione di ordine superiore

controllaSeIdempotente(quad, 1)

% ma non funziona se passo la funzione elevaAlQuadrato

controllaSeIdempotente(elevaAlQuadrato, 1)

Error using elevaAlQuadrato (line 2)

Not enough input arguments.

% occorre creare un handle per elevaAlQuadrato

controllaSeIdempotente(@elevaAlQuadrato, 1)

% oppure

controllaSeIdempotente(@(x)elevaAlQuadrato(x), 2)

% il nome delle variabili utilizzate per definire

function handle non conta

k = @(asd) elevaAlQuadrato(asd)

controllaSeIdempotente(k, 2)

Page 46: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

map

map f

vin

vout

function [vout] = map(f, vin)

for ii = 1:length(vin)

vout(ii) = f(vin(ii));

end

>> A = [1 2 3 4 5 6];

>> map(quad, A)

ans = 1 4 9 16 25 36

Page 47: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

map

โ–ช

โ–ช f

f

f map

map(@controllaSePrimo, vett)

Page 48: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

function [x] = acc(f, a, u)

x = u;

for ii = 1:length(a)

x = f(x, a(ii));

end

โ–ช f u

f (f(u, n) = n)

โ–ช f a

f a(1) f(u, a(1))

f

a(2) f(f(u, a(1)), a(2))

f(f...f(f(u, a(1)), a(2)),..., a(end))

Page 49: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

function [s] = sommatoria(a)

som = @(x, y)(x+y);

s = acc(som, a, 0);

function [s] = produttoria(a)

prd = @(x, y)(x*y);

s = acc(prd, a, 1);

Page 50: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 51: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

figure(fig)

hold

plot(x,y)

plot3(x,y,z)

plot(x,y, frmStr) frmStr

imagesc(A)

imshow(A)

legend(titles)

Page 52: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

plot(x, y)

x

y

[x(1), y(1)],..., [x(end), y(end)]

x y

help plot

xlabel

ylabel title

Page 53: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

>> x = -10:0.1:10;

>> y = x.^3;

>> plot(x, y);

>> xlabel('ascisse');

>> ylabel('ordinate');

>> title('cubica');

-10 -8 -6 -4 -2 0 2 4 6 8 10-1000

-800

-600

-400

-200

0

200

400

600

800

1000

ascisse

ord

inate

cubica

>> x = [-8:0.1:8];

>> y = sin (x) ./ x;

>> plot(x, y);

>> xlabel('ascisse');

>> ylabel('ordinateโ€™);

-8 -6 -4 -2 0 2 4 6 8-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

ascisse

ord

inate

Page 54: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

ascisse-x

ord

inate

-y

-30 -20 -10 0 10 20 30 40-30

-20

-10

0

10

20

30

ascisse-x

ord

inate

-y

>> t = [0:pi/100:2*pi];

>> x = cos(t);

>> y = sin(t);

>> plot(x, y);

>> xlabel('ascisse');

>> ylabel('ordinate');

>> t = [0:pi/100:10*pi];

>> x = t .* cos(t);

>> y = t .* sin(t);

>> plot(x, y);

>> xlabel('ascisse');

>> ylabel('ordinate');

Page 55: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช samplePolynomial

polyCoeff

interval

xx yy

๐‘ฆ = ๐ถ 1 ๐‘ฅ๐‘›โˆ’1 + ๐ถ 2 ๐‘ฅ๐‘›โˆ’2 + โ€ฆ+ ๐ถ ๐‘› โˆ’ 1 ๐‘ฅ1 + ๐ถ(๐‘›)

โ–ช samplePolynomial

๐‘ฆ = ๐‘ฅ โ€“ 1;๐‘ฆ = 2 ๐‘ฅ2 + ๐‘ฅ โ€“ 12;๐‘ฆ = โˆ’0.1๐‘ฅ3 + 2 ๐‘ฅ2 โˆ’ 10 ๐‘ฅ โˆ’ 12

โ–ช ๐‘ฅ ๐‘ฆ

Page 56: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

function [xx, yy] =

samplePolynomial(polyCoeff, interval)

% per essere certi che a <= b

a = min(interval);

b = max(interval);

xx = [a : (b-a) / 99 : b];

% oppure xx = linspace(a , b, 100)

yy = zeros(size(xx));

for ii = 1:1:length(polyCoeff)

yy = yy + polyCoeff(ii) * ...

xx.^(length(polyCoeff) - ii);

end

Page 57: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

% definisco intervallo e coefficienti

interval = [-10, 10];

rettaCoeffs = [1, -1];

parabolaCoeffs = [2, 1, -12] ;

cubicaCoeffs = [-0.1, 2, -10, -12];

% calcola i valori dei polinomi

[rx, ry] = samplePolynomial(rettaCoeffs,

interval);

[px, py] = samplePolynomial(parabolaCoeffs,

interval);

[cx, cy] = samplePolynomial(cubicaCoeffs,

interval);

Page 58: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

figure();

plot(rx, ry, 'r-', 'LineWidth', 3);

hold on;

plot(px, py, 'b--', 'LineWidth', 3);

plot(cx, cy, 'm:', 'LineWidth', 3);

hold off;

legend('retta', 'parabola', 'cubicaโ€™);

xlabel('xโ€™);

ylabel('yโ€™);

title(โ€˜Polinomiโ€™);

Page 59: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 60: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 61: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

% determina i punti ad ordinata maggiore

indx_r = find(ry > py & ry > cy);

indx_p = find(py > ry & py > cy);

indx_c = find(cy > py & cy > ry);

hold on

plot(rx(indx_r), ry(indx_r), 'yoโ€™,

'LineWidth', 3, 'MarkerSize', 5);

plot(px(indx_p), py(indx_p), 'yoโ€™,

'LineWidth', 3, 'MarkerSize', 5);

plot(cx(indx_c), cy(indx_c), 'yoโ€™,

'LineWidth', 3, 'MarkerSize', 5);

legend('Retta', 'Parabola', 'Cubicaโ€™,

'Maggiore');

Page 62: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

plot3(x, y, z) x

y z

xlabel, ylabel,

zlabel, title

-40

-20

0

20

40

-40

-20

0

20

400

10

20

30

40

ascisseordinate

quote

t = 0:0.1:10*pi;

plot3 (t.*sin(t), t.*cos(t), t);

xlabel('ascisse');

ylabel('ordinate');

zlabel('quote');

Page 63: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

linspace

โ–ช linspace(a, b, n): n

a b

โ–ช plot

โ–ช set(plot_handle, โ€˜Property Nameโ€™,

PropertyVal)

t = linspace(0, 4*pi ,200);

plot_hnd = plot3(sin(t), cos(t), cos(3/2*t));

set(plot_hnd, 'LineWidth', 3);

xlabel(โ€˜Ascisse');

ylabel(โ€˜Ordinate');

zlabel(โ€˜Quote');

Page 64: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 65: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

t = linspace(0, 4*pi ,200);

plot_hnd = plot3(sin(t),cos(t),cos(3/2 *t));

set(plot_hnd, 'LineWidth', 3);

xlabel(โ€˜Ascisse');

ylabel(โ€˜Ordinate');

zlabel(โ€˜Quote');

set(plot_hnd ,'LineStyleโ€™, 'noneโ€™, 'Markerโ€™,

โ€˜oโ€™, 'MarkerFaceColorโ€˜, [0 1 0], ...

'MarkerEdgeColorโ€™, [1 0 1], ...

'MarkerSizeโ€™, 5, 'LineWidthโ€™, 1.5);

Page 66: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 67: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

mesh(xx, yy, zz)

โ€ข xx

โ€ข yy

โ€ข zz

xx yy

zz

Page 68: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

meshgrid

xx yy

meshgrid(x,y)

[xx, yy] = meshgrid(x,y)

โ€ข x y

โ€ข xx yy

xx x

yy

y

Page 69: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

meshgrid

[xx, yy] = meshgrid([-3 : 3], [-4 : 4]);

Page 70: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

x = [1, 3, 5];

y = [2, 4];

[xx, yy] = meshgrid(x, y);

zz = xx + yy;

mesh(xx, yy, zz);

xlabel(โ€˜Ascisse (x)โ€™);

ylabel(โ€˜Ordinate (y)');

(1,2,3) (3,2,5) (5,2,7)

(1,4,5) (3,4,7) (5,4,9)

(1,2) (3,2) (5,2)

(1,4) (3,4) (5,4)

Page 71: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 72: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

mesh

[xx, yy] = meshgrid([-3:0.1:3], [-4:0.1:4]);

f = @(x, y)(1 - x.^2 - y.^2);

figure();

aa = mesh(xx, yy, f(xx, yy));

โ–ช

โ–ช

Page 73: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 74: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

surf

[xx, yy] = meshgrid([-3:0.1:3], [-4:0.1:4]);

f = @(x, y)(1 - x.^2 - y.^2);

figure();

aa = surf(xx, yy, f(xx, yy));

โ–ช

Page 75: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 76: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

hold on

โ–ช

โ–ช

โ€ข plot3() mesh() surf()

โ–ช hold on

hold off

Page 77: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

๐‘ง = ๐‘ฅ2 โˆ’ ๐‘ฆ2 แ‰Š๐‘ง = ๐‘ฅ2

๐‘ฆ = 0

[xx, yy] = meshgrid([-3:0.1:3], [-4:0.1:4]);

f = @(x, y)(x.^2 - y.^2);

figure();

aa = surf(xx, yy, f(xx, yy));

hold on;

x = xx(1, :);

y = zeros(size(x));

bb = plot3(x, y, f(x,y), 'g-โ€™);

set(bb, 'LineWidth', 3);

hold off;

Page 78: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 79: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

๐‘ง =sin ๐‘ฅ2 + ๐‘ฆ2

๐‘ฅ2 + ๐‘ฆ2

tx = [-8:0.1:8]; ty = tx;

[xx, yy] = meshgrid(tx, ty);

f = @(x,y)(sin(sqrt(x.^2 + y.^2))./sqrt(x.^2

+ y.^2));

figure();

aa = surf(xx, yy, f(xx, yy));

hold on

plot3(tx, tx, f(tx,tx),'r-โ€™,'LineWidthโ€™, 3);

set(aa,'edgecolor','none')

Page 80: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 81: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 82: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

โ–ช

โ–ช

โ–ช

โ–ช

- 83 -

Page 83: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

var = struct(nomecampo1, valorecampo1, ...)

โ€ข var

โ€ข nomecampo1

valorecampo1

โ€ข ...

studente = struct(โ€™nomeโ€™, โ€™Giovanniโ€™, โ€™etaโ€™,

24);

Page 84: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ€ข

โ€ข

โ€ข

studente.nome = 'Giovanni';

studente.eta = 24;

โ–ช

Page 85: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

โ–ช studente

studente(2)

studente(2).nome = โ€˜Giuliaโ€™;

studente(2).eta = 22;

โ–ช studente(2):

Page 86: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

โ–ช

studente(2).esami = [20 25 30];

student(2) esami

Page 87: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

โ–ช

studente(1).corso(1).nome = 'InformaticaB';

studente(1).corso(1).docente = 'Von

Neumann';

studente(1).corso(2).nome = 'Matematica';

studente(1).corso(2).docente = 'Eulero';

Page 88: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)
Page 89: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

n = input(['quanti rilievi? ']);

for ii = 1 : n

s(ii).altezza = input(['altezza rilievo nr ',

num2str(ii), ' ']);

s(ii).latitudine= input(['latitudine rilievo nr

', num2str(ii), ' ']);

s(ii).longitudine= input(['longitudine rilievo nr

', num2str(ii), ' ']);

end

% creo dei vettori con i valori dei campi

LAT = [s.latitudine]; LON = [s.longitudine];

ALT = [s.altezza];

% definizione del sottovettore da estrarre da altezza

latOK = (LAT > 30) & (LAT <60);

lonOK = (LON> 10) & (LON<100);

posOK =latOK & lonOK;

mean(ALT(posOK))

Page 90: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

โ–ช

[rilievi.altezza]

โ–ช

[rilievi.altezza] = [rilievi.altezza] + 10

rilievi

โ–ช

Page 91: samplePolynomial polyCoeffย ยท samplePolynomial polyCoeff interval xx yy =๐ถ1 ๐‘›โˆ’1+๐ถ2 ๐‘›โˆ’2+โ€ฆ+๐ถ๐‘›โˆ’1 1+๐ถ(๐‘›)

function ril = sommaAlt(ril, offset)

for ii = 1 : length(ril)

ril(ii).alt = ril(ii).alt + offset;

end

โ–ช sommaAlt

rilievi

โ–ช rilievi

sommaAlt

rilievi = sommaAlt(rilievi, 10)