% uso Octave, ma la stessa sintassi base vale anche per MATLAB
% la percentuale è il simbolo per i commenti
% CALCOLATRICE
5+4
5-3
2*7
8/3
2^6
log(2)
exp(3)
abs(-1) % valore assoluto
floor(1.9) % arrotonda per difetto (=1)
ceil(1.9) % arrotonda all'intero più vicino (=2)
% OPERAZIONI LOGICHE
1 == 2 % restituisce 0 (false)
1 ~= 2 % ~= significa diverso: restituisce 1 (true)
1 && 0 % AND
1 || 0 % OR
xor(1,0) % OR alternativo
% VARIABILI
a=3
b='ciao'; % con il ; non viene visualizzata l'output dopo l'operazione
a = 3, b = 'ciao' % con la virgola metto più comandi sulla stessa riga+
a = 3; b = 'ciao'; % punto e virgola come virgola ma senza print output
c = pi; % pi è il pi greco
a % mostra "a = 3"
disp(a) % mostra solo "3"
disp(sprintf('%0.2f', c)) % arrotonda al secondo decimale
disp(sprintf('2 decimali: %0.2f', c)) % output: "2 decimali: 3.14"
format long % formato con cui vedrò le variabili
c % output: "c = 3.1415926358979"
format short
c % output: "c = 3.1416"
% VETTORI E MATRICI
v = [1;2;3] % vettore colonna, matrice 3*1
w = [1 2 3] % vettore riga, matrice 1*3 (separatore spazio o virgola)
y = 1:6 % vettore riga di 6 elementi, da 1 a 6
z = 1:0.1:2 % elementi da 1 a 2 incrementali di 0.1 [1 1.1 ... 2]
length(v) % elementi del vettore v
A = [1 2; 3 4; 5 6] % matrice 3*2, prima riga 1 2
ones(2,4) % matrice 2*4 di tutti 1
2*ones(5,6) % matrice 5*6 di tutti 2
zeros(1,6) % vettore riga di 6 elementi tutti 0
rand(2,3) % matrice 2*3 di numeri casuali
randn(2,3) % elementi random presi dalla distribuzione della gaussiana
x = randn(1,100);
hist(x) % istogramma degli elementi di x (gaussiana)
eye(5) % matrice identity 5*5 (1 sulla diagonale, 0 nel resto)
help(eye) % mostra cosa fa la funzione
size(A) % vettore contenente le dimensioni della matrice A
length(A) % dimensione maggiore della matrice A (3)
A(2,2) % vedo elemento riga 2 colonna 2
A(3,:) % tutti gli elementi della riga 3
A(:,2) % tutti gli elementi della colonna 2
A([1 3],:) % tutti gli elementi delle righe 1 e 3
A(:,2) = [8;7;6] % assegno i valori 8 7 e 6 alla seconda colonna di A
A = [A, [8,9,10]] % aggiungo una colonna alla matrice A
A(:) % tutti gli elementi di A in un singolo vettore
A = [1 2; 3 4; 5 6];
B = [11 12; 13 14; 15 16];
C = [A B] % matrice composta da A e B affiancate
C = [A; B] % matrice composta da A sopra e B sotto
D = [7 8; 9 10]
A * D % moltiplico le matrici
A .* B % moltiplico ogni elemento di A con il corrispondente di B
A .^ 2 % ogni elemento di A al quadrato
1 ./ A % inverso di ogni elemento di v
log(A) % logaritmo di ogni elemento di A
exp(A) % esponenziale di ogni elemento
abs(A) % valore assoluto di ogni elemento
-A % cambio segno a ogni elemento ( -1*A)
A+1 % incremento di 1 ogni elemento di A
A' % matrice trasposta (scambio righe e colonne)
max(A) % massimo di ogni colonna di A
max(A,[],2) % massimo di ogni riga di A
max(max(A)) % elemento massimo assoluto
A < 3 % matrice di logici, confronta ogni elemento con 3
find(A<2) % restituisce la posizione degli elementi minori di 3
[r,c] = find(A>2) % vettore r con riga dell'elemento e c con colonna dell'elemento maggiore di 2
sum(A) % somma tutti gli elementi di ogni colonna
sum(A,2) % somma per riga
prod(A) % moltiplica tutti gli elementi di ogni colonna
prod(A,2) % moltiplica per riga
sum(sum(D .* eye(2)) % sommo gli elementi sulla diagonale di D
flipud(A) % rovescia la matrice A (ultima riga = prima riga)
pinv(A) % matrice inversa di A
% WORKSPACE
pwd % current directory
cd 'C:\cartella' % sposta la current directory nel percorso specificato
ls % file e cartelle nella current dir (equivalente del comando dir del dos)
addpath('C:\work') % aggiunge la cartella indicata tra quelle dove cerca i file
load doc.txt % carica il file "doc.txt" dalla current dir
load('doc.txt') % alternativa per il caricamento
who % vedo tutte le variabili del mio workspace
whos % vedo variabili e loro caratteristiche
doc % vedo il file doc caricato prima
clear % pulisco tutto il workspace
save doc2.txt c % salva c nel file doc2.txt (txt leggibile con commento)
save doc2.txt c -ascii % salva c in txt (solo variabile)
save doc2.mat c % salva c nel file doc2.mat (formato binario compresso)
clear c % elimino solo la variabile c
load doc2.mat % ricaricata la variabile c
% mat è l'estensione dei file di MATLAB, letti e scritti anche da Octave
save doc2.mat c % salva c nel file doc2.mat
% GRAFICI
x = [1,2,3]
y = [4,5,6]
plot(x,y)
hold on % per conservare il grafico e non sovrascriverlo con il prossimo
z = [7,8,9]
plot(x,z) % grazie a "hold on" viene messo insieme al grafico precedente (stessi assi)
xlabel('asse x') % nomino l'asse
ylabel('asse y')
legend('y','z') % legenda
title('Grafico 1') % titolo
print -dpng 'prova.png' % esporto in un file immagine
figure(1); plot(x,y)
figure(2); plot(x,z) % per fare due grafici separati
subplot(2,2,1) % creo una base di 4 grafici (2 righe 2 colonne) e mi posiziono in alto a sinistra
plot(x,y) % grafico in alto a sinistra
subplot(2,2,1) % ora mi posiziono in basso a destra
plot(x,z) % grafico in basso a destra
axis([0 10, 0 10]) % cambio min e max degli assi
clf % cancella il grafico
A = [1 2 3; 1 3 4; 1 4 5; 1 5 1]
imagesc(A) % matrice su grafico: a numeri diversi colori diversi
imagesc(A), colorbar % con barra che mi mostra la barra dei colori come legenda
imagesc(A), colorbar, colormap gray % in scala di grigi
% CICLI IF, FOR, WHILE
v = [1,2,3,4,5]
if v(5) == 4,
v(5) = v(5) + 1;
elseif v(5) == 5,
v(5) = v(5) - 1;
else
disp('wtf?');
end;
for i = 1:4,
v(i) = 2*i;
end;
i = 1;
while i <= 3,
v(i) = 10;
i = i+1;
end;
i = 1;
while true,
v(i) = 100;
i = i+1;
if i == 4,
break;
end;
end;
% FUNZIONI
function f = quadrato(x)
f = x^2;
end;
quadrato(3) % restituisce 9
function [g1,g2] = quadratocubo(x)
g1 = x^2;
g2 = x^3;
end;
[a,b] = quadratocubo(3) % restituisce a = 9, b = 27
% se salvo una funzione in un file con estensione .m posso utilizzarla senza doverla caricare se metto il file nella working directory
Categories
Bash
(3)
BOT
(2)
C#
(1)
Cluster Analysis
(1)
Data Cleaning
(6)
Data Ingestion
(2)
Data Science Specialization
(10)
Data Visualization
(15)
ggplot2
(1)
Hadoop
(1)
Hashnode
(3)
Machine Learning
(5)
MapReduce
(1)
Maps
(1)
Markdown
(7)
Market Basket Analysis
(1)
MATLAB
(1)
Matplotlib
(3)
Numpy
(2)
Octave
(1)
Pandas
(3)
Python
(17)
R
(22)
Regression
(7)
scikit-learn
(1)
Seaborn
(1)
Shell
(3)
Shiny App
(1)
SSIS
(3)
Statistical Inference
(2)
T-SQL
(8)
Unix
(3)
No comments:
Post a Comment