%Principais comandos em Matlab e Octave

a=1;
b=3;
who    %exibe variaveis da area de trabalho

clear
close all

help close     %obtem ajuda sobre comando close

%VETORES E GRAFICOS

x=linspace(0,100,1e4); %cria 10?4 numeros igualmente espacados em [0,100]
y=logspace(-5,2,1e4);  %equivalente a 10.?linspace(-5,2,1e4)


tic                    %inicia o relogio
for i=1:length(x) 
    zn(i)=x(i)+y(i);
end
toc                    %exibe o tempo

tic                    %reinicia relogio
z=x+y;
toc                    %exibe o tempo

pause

figure(1)
plot(z)
plot(y)

pause

hold on               %segura as curvas jah plotadas para que
                      %nao desaparecam ao plotar novas curvas
plot(x,'r')
plot(z,'k')
legend('y','x','z')

figure(2)

titulo='Parabola';

plot(x,x.^2)
xlabel('x')
ylabel('x^2')
title(titulo)
grid


%vamos salvar a figura 1 em figura1.pdf

figure(1)
print -dpdf 'figura1'

figure(3)
plot3(x,y,x.*y)
grid

figure(4)
subplot(2,2,1)
plot(x,2*x,'m--')

subplot(2,2,2)
plot(x,cos(x),'k.')

subplot(2,2,3)
plot(x,10.^(-x),'rx')

subplot(2,2,4)
plot(x,ones(size(x)),'o')

%Indexacao
clc

a=x(end/2:end)     %metade final do vetor x
b=x(1:10)          %primeiros 10 elementos
c=find(x>40)       %indices dos elementos maiors que 40
d=x(c)             %elementos maiores que 40
e=x([3 8 10 4])    %elementos com indice 3,8,10 e 4

w=ones(size(x));   %vetor de uns
w=w+x;
ze=zeros(1,length(w));   %vetor de zeros 
w=rand(1,length(w));   %vetor de numeros aleatorios uniformemente
                       %distribuidos entre 0 e 1              

w=randn(1,length(w));   %vetor de numeros aleatorios com distribuicao
                       %normal (gaussiana), media 0 e variancia 1              

w(1:10)=[];            %apagamos 10 primeiros elementos                       
                       
                       
pause

clear


%MATRIZES

v=[3,4,5]
size(v)
w=[3,4,5]'
size(w)

A=w*v

size(A)

A(1,2)
col2=A(:,2)
size(col2)
A*A
A.*A

eig(A)

B=A^2

B=A.^2

log(10)


log10(10)

zeros(2,3)

eye(5)      %matriz identidade
randn(2,3)  %matriz aleatoria 


%Concatenacao de matrizes

B=[A zeros(size(A)); ones(size(A)) eye(size(A))]

B=[B B]

%Funcoes comuns

C=exp(A)

C=expm(A)

D=log(A)

max(A)

min(A)

mean(A)

std(A)

prod(A)

sort(A)

norm(A)

%GRAFICOS DE SUPERFICIE

x=-5:0.5:5;
y=-5:0.5:5;

[X,Y]=meshgrid(x,y);

figure

surf(X,Y,X.^2+Y.^2)

%CONTROLE DE FLUXO

x=rand(10,1);
aux=Inf;
for i=1:length(x)
if x(i)<= aux    
    aux=x(i);
elseif x(i)<0 
   disp(x(i))
else
    disp(-x(i))
end
end
aux

%POLINOMIOS

p=[1 4 -2 3];   
x=2;           
y=polyval(p,x)  %avalia o polinomio de coeficientes p no ponto x

p2=[3 2 1];

pn=conv(p,p2)   % produto dos polinomios

[p,r]=deconv(pn,p2)   %divisao de pn por p2 com resto r

r=roots(p)         %raizes do polinomio

%Numeros complexos

imag(r)
real(r)
angle(r)
abs(r)

%FUNCOES

y=func0(x)

