221x Filetype PDF File size 0.12 MB Source: sites.nd.edu
Matlab Cheat Sheet Built in functions/constants Tables
abs(x) absolute value T=table(var1,var2,...,varN) Makes table*
pi 3.1415... T(rows,vars) get sub-table
Some nifty commands inf ∞ T{rows,vars} get data from table
clc Clear command window eps floating point accuracy T.var or T.(varindex) all rows of var
clear Clear system memory 6 T.var(rows) get values of var from rows
1e6 10
clear x Clear x from memory sum(x) sums elements in x summary(T) summary of table
commandwindow open/select commandwindow cumsum(x) Cummulative sum T.var3(T.var3>5)=5 changes some values
whos lists data structures prod Product of array elements T.Properties.Varnames Variable names
whos x size, bytes, class and attributes of x cumprod(x) cummulative product T = array2table(A) ! make table from array
ans Last result diff Difference of elements T = innerjoin(T1,T2) innerjoin
close all closes all figures round/ceil/fix/floor Standard functions.. T = outerjoin(T1,T2) outerjoin !
close(H) closes figure H *Standard functions: sqrt, log, exp, max, min, Bessel Rows and vars indicate rows and variables.
winopen(pwd) Open current folder *Factorial(x) is only precise for x < 21 tables are great for large datasets, because they
class(obj) returns objects class use less memory and allow faster operations.
save filename saves all variables to .mat file *rowfun is great for tables, much faster than eg. looping
save filename x,y saves x,y variables to .mat file Cell commands Acell can contain any variable type.
save -append filename x appends x to .mat file x=cell(a,b) a ×b cell array matrix and vector operations/functions
load filename loads all variables from .mat file x{n,m} access cell n,m cellfun x=[1, 2, 3] 1x3 (Row) vector
ver Lists version and toolboxes cell2mat(x) transforms cell to matrix x=[1; 2; 3] 3x1 (Column) vector
beep Makes the beep sound cellfun(’fname’,C) Applies fname to cells in C x=[1, 2; 3, 4] 2x2 matrix
doc function Help/documentation for function x(2)=4 change index value nr 2
docsearch string search documentation x(:) All elements of x (same as x)
web google.com opens webadress Strings and regular expressions x(j:end) j’th to last element of x
inputdlg Input dialog box strcomp compare strings (case sensitive) x(2:5) 2nd to 5th element of x
methods(A) list class methods for A strcompi compare strings (not case sensitive) x(j,:) all j row elements
strncomp as strcomp, but only n first letters x(:,j) all j column elements
strfind find string within a string diag(x) diagonal elements of x
Statistical commands , gives start position x.*y Element by element multiplication
distrnd random numbers from dist regexp Search for regular expression x./y Element by element division
distpdf pdf from dist x+y Element by element addition
distcdf cdf dist x-y Element by element subtraction
distrnd random numbers from dist Logical operators A^n normal/Matrix power of A
hist(x) histogram of x && Short-Circuit AND. A.^n Elementwise power of A
histfit(x) histogram and & AND A’ Transpose
*Standard distributions (dist): norm, t, f, gam, chi2, bino || Short-Circuit or inv(A) Inverse of matrix
*Standard functions: mean,median,var,cov(x,y),corr(x,y), | or size(x) Rows and Columns
*quantile(x,p) is not textbook version. ~ not eye(n) Identity matrix
(It uses interpolation for missing quantiles. == Equality comparison sort(A) sorts vector from smallest to largest
~= not equal eig(A) Eigenvalues and eigenvectors
isa(obj, ’class_name’) is object in class numel(A) number of array elements
Keyboard shortcuts *Other logical operators: <,>,>=,<= x(x>5)=0 change elemnts >5 to 0
*All above operators are elementwise x(x>5) list elements >5
edit filename Opens filename in editor *Class indicators: isnan, isequal, ischar, isinf, isvector find(A>5) Indices of elements >5
Alt Displays hotkeys , isempty, isscalar, iscolumn find(isnan(A)) Indices of NaN elements
F1 Help/documentation for highlighted function *Short circuits only evaluate second criteria if [A,B] concatenates horizontally
F5 Run code first criteria is passed, it is therefore faster. [A;B] concatenates vertically
F9 Run highlighted code And useful fpr avoiding errors occuring in second criteria For functions on matrices, see bsxfun,arrayfun or repmat
F10 Run code line *non-SC are bugged and short circuit anyway *if arrayfun/bsxfun is passed a gpuArray, it runs on GPU.
F11 Run code line, enter functions *Standard operations: rank,rref,kron,chol
Shift+F5 Leave debugger *Inverse of matrix inv(A) should almost never be used, use RREF
F12 Insert break point Variable generation through \ instead: inv(A)b = A\b.
Ctrl+Page up/down Moves between tabs j:k row vector [j,j+1,...,k]
Ctrl+shift Moves between components j:i:k row vector [j,j+i,...,k],
Ctrl+C Interrupts code linspace(a,b,n) n points linearly spaced
Ctrl+D Open highlighted codes file and including a and b
Ctrl+ R/T Comment/uncomment line NaN(a,b) a×b matrix of NaN values
Ctrl+N New script ones(a,b) a×b matrix of 1 values
Ctrl+W Close script zeros(a,b) a×b matrix of 0 values
Ctrl+shift+d Docks window meshgrid(x,y) 2d grid of x and y vectors
Ctrl+shift+u Undocks window [a,b]=deal(NaN(5,5)) declares a and b
Ctrl+shift+m max window/restore size global x gives x global scope
Plotting commands Nonlinear nummerical methods if(criteria 1) if criteria 1 is true do procedure 1
quad(fun,a,b) simpson integration of @fun procedure1
fig1 = plot(x,y) 2d line plot, handle set to fig1
set(fig1, ’LineWidth’, 2) change line width from a to b elseif(criteria 2) ,else if criteria 2 is true do procedure 2
set(fig1, ’LineStyle’, ’-’) dot markers (see *) fminsearch(fun,x0) minimum of unconstrained procedure2
set(fig1, ’Marker’, ’.’) marker type (see *) multivariable function else , else do procedure 3
set(fig1, ’color’, ’red’) line color (see *) using derivative-free method procedure3
set(fig1, ’MarkerSize’, 10) marker size (see *) fmincon minimum of constrained function end
set(fig1, ’FontSize’, 14) fonts to size 14 Example: Constrained log-likelihood maximization, note the -
figure new figure window Parms_est = fmincon(@(Parms) -flogL(Parms,x1,x2,x3,y) switch switch_expression if case n holds,
figure(j) graphics object j ,InitialGuess,[],[],[],[],LwrBound,UprBound,[]); case 1 run procedure n. If none holds
get(j) returns information procedure 1 run procedure 3
graphics object j case 2 (if specified)
gcf(j) get current figure handle Debbuging etc. procedure 2
subplot(a,b,c) Used for multiple keyboard Pauses exceution otherwise
figures in single plot return resumes exceution procedure 3
xlabel(’\mu line’,’FontSize’,14) names x/y/z axis tic starts timer end
ylim([a b]) Sets y/x axis limits toc stops timer
for plot to a-b profile on starts profiler General comments
title(’name’,’fontsize’,22) names plot profile viewer Lets you see profiler output
grid on/off; Adds grid to plot try/catch Great for finding where • Monte-Carlo: If sample sizes are increasing generate largest
legend(’x’,’y’,’Location’,’Best’) adds legends errors occur size first in a vector and use increasingly larger portions for
hold on retains current figure dbstop if error stops at first calculations. Saves time+memory.
when adding new stuff error inside try/catch block
hold off restores to default dbclear clears breakpoints • Trick: Program that (1) takes a long time to run and (2)
dbcont resume execution doesnt use all of the CPU/memory ? - split it into more
(no hold on) lasterr Last error message programs and run using different workers (instances).
set(h,’WindowStyle’,’Docked’); Docked window lastwarn Last warning message
style for plots break Terminates executiion of for/while loop • Matlab is a column vector based language, load memory
datetick(’x’,yy) time series axis columnwise first always. For faster code also prealocate
plotyy(x1,y1,x2,y2) plot on two y axis waitbar Waiting bar memory for variables, Matlab requires contiguous memory
refreshdata refresh data in graph usage!. Matlab uses copy-on-write, so passing pointers
if specified source Data import/export (adresses) to a function will not speed it up. Change
drawnow do all in event queue variable class to potentially save memory (Ram) using:
* Some markers: ’, +, *, x, o, square xlsread/xlswrite Spreadsheets (.xls,.xlsm) int8, int16, int32, int64, double, char, logical, single
* Some colors: red, blue, green, yellow, black readtable/writetable Spreadsheets (.xls,.xlsm)
* color shortcuts: r, b, g, y, k dlmread/dlmwrite text files (txt,csv) • You can turn the standard (mostly) Just-In-Time
load/save -ascii text files (txt,csv) compilation off using: feature accel off. You can use
* Some line styles: -, --, :, -. load/save matlab files (.m) compiled (c,c++,fortran) functions using MEX functions.
* shortcut combination example: plot(x,y,’b--o’) imread/imwrite Image files
• Avoid global variables, they user-error prone and compilers
Output commands cant optimize them well.
format short Displays 4 digits after 0 Programming commands • Functions defined in a .m file is only available there.
format long Displays 15 digits after 0 return Return to invoking function Preface function names with initials to avoid clashes, eg.
disp(x) Displays the string x exist(x) checks if x exists MrP function1.
disp(x) Displays the string x G=gpuArray(x) Convert varibles to GPU array
num2str(x) Converts the number in x to string function [y1,...,yN] = myfun(x1,...,xM) • Graphic cards(GPU)’s have many (small) cores. If (1)
num2str([’nA is = ’ OFTENUSED! Anonymous functions not stored in main programme program is computationally intensive (not spending much
num2str(a)]) ! myfun = @(x1,x2) x1+x2; time transfering data) and (2) massively parallel, so
mat2str(x) Converts the matrix in x to string or even using computations can be independent. Consider using the GPU!
int2str(x) Converts the integer in x to string myfun2 = @myfun(x) myfun(x3,2) • Using multiple cores (parallel computing) is often easy to
sprintf(x) formated data to a string implement, just use parfor instead of for loops.
System commands Conditionals and loops • Warnings: empty matrices are NOT overwritten ([]+1 = []).
addpath(string) adds path to workspace for i=1:n Rows/columns are added without warning if you write in a
genpath(string) gets strings for subfolders procedure Iterates over procedure nonexistent row/column. Good practise: Use 3i rather than
pwd Current directory end incrementing i from 1 to n by 1 3*i for imaginary number calculations, because i might have
mkdir Makes new directory been overwritten by earlier. 1/0 returns inf, not NaN. Dont
tempdir Temporary directory use == for comparing doubles, they are floating point
inmem Functions in memory while(criteria) precision for example: 0.01 == (1−0.99) = 0.
exit Close matlab procedure Iterates over procedure
c
dir list folder content end as long as criteria is true(1) Copyright
2015 Thor Nielsen (thorpn86@gmail.com)
ver lists toolboxes http://www.econ.ku.dk/pajhede/
no reviews yet
Please Login to review.