Básico
Janela de Comando
x = 5; % assign (semicolon suppresses output) x = 5 % assign and display result disp('Hello') % print to console clc % clear command window clear % clear all variables
Ajuda e Informações
help sin % quick help for function doc sin % open documentation who % list variables in workspace whos % list with details (size, type)
Operadores
+ - * / ^Aritmética (operações matriciais)
.* ./ .^Operações elemento a elemento
== ~= < > <= >=Operadores de comparação
&& || ~AND, OR, NOT lógicos (escalares)
& | ~Lógicos elemento a elemento (arrays)
Variáveis e Tipos
Tipos Numéricos
x = 3.14; % double (default) n = int32(42); % 32-bit integer z = 2 + 3i; % complex number tf = true; % logical
Verificação de Tipo
class(x)Retorna nome do tipo como string
isa(x, 'double')Verifica se x é do tipo específico
isnumeric(x)Verdadeiro se tipo numérico
ischar(x)Verdadeiro se array de caracteres
islogical(x)Verdadeiro se tipo lógico
Constantes Especiais
pi3,14159...
Inf / -InfInfinito
NaNNão é um número
epsEpsilon da máquina (~2,2e-16)
i / jUnidade imaginária
Arrays e Matrizes
Criando Arrays
v = [1 2 3 4 5]; % row vector v = [1; 2; 3]; % column vector A = [1 2; 3 4]; % 2x2 matrix r = 1:5; % [1 2 3 4 5] r = 0:0.5:2; % [0 0.5 1 1.5 2]
Construtores Integrados
zeros(3) % 3x3 of zeros ones(2, 4) % 2x4 of ones eye(3) % 3x3 identity rand(2, 3) % 2x3 uniform random linspace(0,1,5) % 5 evenly spaced [0..1]
Indexação e Fatiamento
A(2, 3) % row 2, col 3 A(1, :) % entire first row A(:, 2) % entire second column A(1:2, 1:2) % submatrix A(end, :) % last row
Operações Matriciais
A'Transposta (conjugada)
A.'Transposta (sem conjugação)
inv(A)Inversa da matriz
det(A)Determinante
eig(A)Autovalores e autovetores
A \ bResolver Ax = b
size(A)Dimensões [linhas colunas]
numel(A)Número total de elementos
Fluxo de Controle
if / elseif / else
if x > 0 disp('positive') elseif x == 0 disp('zero') else disp('negative') end
for e while
for i = 1:10 fprintf('i = %d\n', i); end while x > 0 x = x - 1; end
switch
switch grade case 'A' disp('Excellent') case {'B', 'C'} disp('Good') otherwise disp('Try harder') end
Controle de Laço
breakSair do laço mais interno
continueIr para próxima iteração
returnSair da função imediatamente
Funções
Arquivo de Função
% Save as myfunc.m function result = myfunc(x, y) result = x.^2 + y.^2; end
Múltiplas Saídas
function [mn, mx] = minmax(v) mn = min(v); mx = max(v); end [lo, hi] = minmax([3 1 4 1 5]);
Funções Anônimas
f = @(x) x.^2 + 1; f(3) % returns 10 g = @(x,y) x + y; arrayfun(f, [1 2 3]) % apply to each element
Funções Integradas Úteis
sum(v)Soma dos elementos
mean(v)Valor médio
max(v) / min(v)Máximo / mínimo
sort(v)Ordenar em ordem crescente
find(v > 3)Índices onde a condição é verdadeira
length(v)Comprimento do vetor
Gráficos
Gráficos 2D
x = 0:0.1:2*pi; plot(x, sin(x), 'r-', 'LineWidth', 2) xlabel('x'); ylabel('sin(x)') title('Sine Wave'); grid on legend('sin(x)')
Múltiplos Gráficos
hold on plot(x, sin(x), 'b-') plot(x, cos(x), 'r--') hold off subplot(1,2,1); plot(x, sin(x)) subplot(1,2,2); plot(x, cos(x))
Outros Tipos de Gráfico
bar(x, y)Gráfico de barras
histogram(data)Histograma
scatter(x, y)Gráfico de dispersão
pie(data)Gráfico de pizza
surf(X, Y, Z)Gráfico de superfície 3D
imagesc(A)Exibir matriz como imagem
Salvar Figura
saveas(gcf, 'plot.png') exportgraphics(gcf, 'plot.pdf')
E/S de Arquivos
Arquivos de Texto
data = readmatrix('data.csv'); writematrix(A, 'output.csv') T = readtable('data.csv'); writetable(T, 'output.csv')
Arquivos MAT
save('workspace.mat') % save all variables save('data.mat', 'x', 'y') % save specific vars load('data.mat') % load into workspace S = load('data.mat'); % load into struct
E/S de Arquivo de Baixo Nível
fid = fopen('log.txt', 'w'); fprintf(fid, 'Value: %f\n', 3.14); fclose(fid); lines = readlines('log.txt');
Operações com Strings
String vs Array de Char
s = "Hello"; % string (double quotes) c = 'Hello'; % char array (single quotes) s + " World" % "Hello World" (string) [c, ' World'] % 'Hello World' (char concat)
Funções de String
strlength(s)Comprimento da string
upper(s) / lower(s)Conversão de caixa
contains(s, pat)Verdadeiro se padrão encontrado
replace(s, old, new)Substituir substring
split(s, delim)Dividir em array
join(arr, delim)Juntar array de strings
strip(s)Remover espaços no início/fim
Formatação
sprintf('x = %.2f', 3.14159) % "x = 3.14" fprintf('i = %d\n', 42) % print to console num2str(3.14) % number to string str2double("3.14") % string to number
Cell e Struct
Cell Arrays
C = {1, 'hello', [1 2 3]}; % mixed types C{2} % access: 'hello' C{end+1} = true; % append element cellfun(@length, C) % apply func to each
Structs
s.name = 'Alice'; s.age = 30; s.scores = [90 85 92]; fieldnames(s) % {'name','age','scores'} rmfield(s, 'age') % remove field
Arrays de Struct
people(1).name = 'Alice'; people(1).age = 30; people(2).name = 'Bob'; people(2).age = 25; {people.name} % {'Alice', 'Bob'} [people.age] % [30, 25]
Padrões Comuns
Operações Vetorizadas
% Avoid loops — use vectorization v = 1:1000; result = sum(v.^2); % fast idx = v(v > 500 & v < 600); % logical indexing
Operações com Tabela
T = table([25;30], ["A";"B"], 'VariableNames', ... {'Age','Grade'}); T.Age % access column T(T.Age > 25, :) % filter rows
Tratamento de Erros
try result = riskyFunction(x); catch ME fprintf('Error: %s\n', ME.message); end
Medindo o Tempo do Código
tic heavyComputation(); toc % prints elapsed time