Matlab-Schnelleinf ̈uhrung, PDF, 3 Seiten
Formatting
Number
format
, Set Command Window output display format
>> a = 1/3; >> b = 0.001; >> format short a = 0.3333 b = 1.0000e-03 >> format shortE a = 3.3333e-01 b = 1.0000e-03 >> format shortG a = 0.33333 b = 0.001 >> format shortEng a = 333.3333e-003 b = 1.0000e-003 >> format long a = 0.333333333333333 b = 1.000000000000000e-03 >> format longE a = 3.333333333333333e-01 b = 1.000000000000000e-03 >> format longG a = 0.333333333333333 b = 0.001
Strings
Functions That Format Data into Text
compose
— Write arrays of formatted data to an output string arraysprintf
— Write formatted data to an output character vector or string scalarfprintf
— Write formatted data to an output file or the Command Windowwarning
— Display formatted data in a warning messageerror
— Display formatted data in an error message and abortassert
— Generate an error when a condition is violatedMException
— Capture error informatio
str = sprintf('Hello, %d worlds!', 20) disp(sprintf('Hello, %d worlds!', 20)) % write to Command Window fprintf('%5d %5d %5d %5d\n', A(1:4)) % write to file fileID = fopen('myfile.txt','w'); nbytes = fprintf(fileID,'%5d %5d %5d %5d\n', A(1:4))
Matrix
eye
, Identity matrix
ones, Create array of all ones
zeros, Create array of all zeros
>> C = [ 1 2 4 4 5; 6 7 8 9 10]; C = 1 2 3 4 5 6 7 8 9 10 >> size(C) 2 5 >> length(C) 5 ================================= >> E = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8; 5 6 7 8 9] E = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 >> E(3,2) 4 >> E(3,(2:5)) 4 5 6 7 >> E((3:4),(2:5)) 4 5 6 7 5 6 7 8
Plotting
plot(x-values, y-values); loglog(x-values, y-values); semilogx(x-values, y-values); xlabel('\omega in Hz'); ylabel('H_d_B'); axis([x-min x-max y-min y-max]); grid on; grid off; hold on; hold off;
Default Argument
function f(arg1,arg2,arg3) if nargin < 3 arg3 = 'some default' end end
LaTex
set(groot, 'defaultAxesTickLabelInterpreter', 'latex'); set(groot, 'defaultLegendInterpreter', 'latex'); set(groot, 'defaultTextInterpreter', 'latex');
Object-Oriented-Programming (OOP)
Objektorientiertes Programmieren in MATLAB
Einführung in die Objekt-Orientierte Programmierung mit MATLAB
Object-Oriented Programming
Create a Simple Class
Class Components
Class Syntax Guide
Automatic Updates for Modified Classes
Handle Class Destructor
Class Constructor Methods
Object Oriented Programming in Matlab: basics
Value Class vs. Handle Class
How to modify properties of a Matlab Object
Comparison of Handle and Value Classes
Callbacks
Write Callbacks for Apps Created Programmatically
Class Methods for Graphics Callbacks
Listener Callback Syntax
Callback Execution
Create Function Handle (Procedural)
Overload Methods
How to overload user defined functions in Matlab?
Operator Overloading
Objects
Use a MATLAB Timer Object
timer class
, Create object to schedule execution of MATLAB commands
Timer Callback Functions
Functions
integral
, Numerical integration
num2str
, Convert numbers to character array
patch
, Create one or more filled polygons
roots
, Polynomial roots (Nullstellen des Polynoms)
fzero
, Root of nonlinear function
Array
setdiff
, Set difference of two arrays
Variables
varargin
, Variable-length input argument list
exist
, Check existence of variable, script, function, folder, or class
varargin
, Variable-length input argument list
nargin
, Number of function input arguments
Nice Way to Set Function Defaults
How to support default parameter in MATLAB FUNCTION ?
function y = somefun2(a,b,opt1,opt2,opt3) % Some function with 2 required inputs, 3 optional. % Check number of inputs. if nargin > 5 error('myfuns:somefun2:TooManyInputs', ... 'requires at most 3 optional inputs'); end % Fill in unset optional values. switch nargin case 2 opt1 = eps; opt2 = 17; opt3 = @magic; case 3 opt2 = 17; opt3 = @magic; case 4 opt3 = @magic; end end function y = somefun2Alt(a,b,varargin) % Some function that requires 2 inputs and has some optional inputs. % only want 3 optional inputs at most numvarargs = length(varargin); if numvarargs > 3 error('myfuns:somefun2Alt:TooManyInputs', ... 'requires at most 3 optional inputs'); end % set defaults for optional inputs optargs = {eps 17 @magic}; % now put these defaults into the valuesToUse cell array, % and overwrite the ones specified in varargin. optargs(1:numvarargs) = varargin; % or ... % [optargs{1:numvarargs}] = varargin{:}; % Place optional args in memorable variable names [tol, mynum, func] = optargs{:}; end
Try/Catch and Exception
try, catch
, Execute statements and catch resulting errors
Throw an Exception
throw
, Throw exception
error
, Throw error and display message
Complex number
real
, Real part of complex number
imag
, Imaginary part of complex number
conj
, Complex conjugate
angle
, Phase angle
abs
, Absolute value and complex magnitude
isType
is
, Detect state
isscalar
, Determine whether input is scalar
ismatrix
, Determine whether input is matrix
isnumeric
, Determine if input is numeric array
isempty
, Determine whether array is empty
isnan
, Array elements that are NaN
iscell
, Determine whether input is cell array
istable
, Determine whether input is table
Symbolic Toolbox
fplot
, Plot symbolic expression or function
subs
, Symbolic substitution
Window
figure
, Create figure window
gcf
, Current figure handle
clf
, Clear current figure window
groot
, Graphics root object
findobj
, Locate graphics objects with specific properties
set
, Set graphics object properties
get
, Query graphics object properties
set(0, 'CurrentFigure', figureHandle) fig = get(groot,'CurrentFigure');
2D Plot
linspace
, Generate linearly spaced vector
plot
, 2-D line plot
scatter
, Scatter plot
stem
, Plot discrete sequence data
line
, Create primitive line
3D Plot / Mesh
plot3
, 3-D line plot
scatter3
, 3-D scatter plot
quiver3
, 3-D quiver or velocity plot
meshgrid
, 2-D and 3-D grids
contour
, Contour plot of matrix
fill3
, Filled 3-D polygons
How can I plot a 3D-plane in Matlab?
Axis
gca
, Current axes or chart
cla
, Clear axes
subplot
, Create axes in tiled positions
hold
, Retain current plot when adding new plots
axis
, Set axis limits and aspect ratios
xlim
, Set or query x-axis limits
xlabel
, Label x-axis
legend
, Add legend to axes
daspect
, Control data unit length along each axis
pbaspect
, Control relative lengths of each axis
Control Ratio of Axis Lengths and Data Unit Lengths
Manipulating Axes Aspect Ratio
grid on; % Nur grobe Linien einschalten grid minor; % Nur feine Linien einschalten % Entweder ax = gca; ax.GridColorMode = 'manual'; ax.GridAlphaMode = 'manual'; ax.GridColor = [0.0, 1.0, 0.0]; ax.GridAlpha = 1.0; ax.MinorGridColorMode = 'manual'; ax.MinorGridAlphaMode = 'manual'; ax.MinorGridColor = [1.0, 0.0, 0.0]; ax.MinorGridAlpha = 0.4; % Oder set(gca, 'GridColorMode', 'manual'); set(gca, 'GridAlphaMode', 'manual'); set(gca, 'GridColor', [0.0, 1.0, 0.0]); set(gca, 'GridAlpha', 1.0);
p1 = plot(t1, y1); hold on; grid minor; p2 = plot(t2, y2); legend([p1, p2], 'sin(x)', 'cos(x)',... 'Location','northwest', 'Orientation','horizontal');
fig = figure(1); ax = fig.CurrentAxes; % DOESN'T WORK!! hold(ax,'on'); % Set gca and use 'current axis' (gca) axis(ax) hold on;
Round / Floor / Ceiling
floor
, Round toward negative infinity
ceil
, Round toward positive infinity
round
, Round to nearest decimal or integer
fix
, Round toward zero
Time and Date
clock
, Current date and time as date vector
datetime
, Create array based on current date, or convert from date strings or numbers
posixtime
, Convert MATLAB datetime to POSIX time
datestr
, Convert date and time to string format
datenum
, Convert date and time to serial date number
Date and Time Arithmetic
datetime Properties
>> c = clock() 2.0170 0.0050 0.0120 0.0160 0.0290 0.0050 >> fix(c) 2017 5 12 16 29 4 >> t = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z') 2017_05_12_16_35_19 (as datetime object) >> t = datetime('now'); >> datestr(t, 'yyyy_MM_dd_HH_mm_ss') 2017_35_12_16_05_28 >> t = datetime('now'); >> unix_time = posixtime(t); >> t = datetime(unix_time, 'ConvertFrom', 'posixtime'); >> num2str(posixtime(datetime('now'))) 1494612053.581 >> num2str(posixtime(datetime('now')) * 1000) 1494611994358
Axis-Ticks
xticks
, Set or query x-axis tick values (DOESN’T WORK!)
Specify Axis Tick Values and Labels
Camera
camva
, Set or query camera view angle
campos
, Set or query camera position
camzoom
, Zoom in and out on scene
Lineare Algebra
linsolve
, Solve linear system of equations given in matrix form
tril
, Lower triangular part of matrix
triu
, Upper triangular part of matrix
diag
, Create diagonal matrix or get diagonal elements of matrix
Quaternion
quatmultiply
, Calculate product of two quaternions
quatinv
, Calculate inverse of quaternion
quat2rotm
, Convert quaternion to rotation matrix
quatnormalize
, Normalize quaternion
eul2quat
, Convert Euler angles to quaternion
quat2eul
, Convert quaternion to Euler angles
quat2tform
, Convert quaternion to homogeneous transformation
tform2quat
, Extract quaternion from homogeneous transformation
Euler
angle2dcm
, Convert rotation angles to direction cosine matrix
Images / Bilder
imread
, Read image from graphics file
imfinfo
, Information about graphics file
imshow
, Display image
image
, Display image from array
imagesc
, Display image with scaled colors
im2uint8
, Convert image to 8-bit unsigned integers
rgb2gray
, Converts the truecolor image RGB to the grayscale intensity image I
Radon Transformation
radon
, Radon transform
Serial
serial
, Create serial port object
instrfind
, Read serial port objects from memory to MATLAB workspace
fopen
(serial), Connect serial port object to device
readasync
, Read data asynchronously from device
Serial Write and Read Data
Serial Events and Callbacks
Timeout, Waiting time to complete a read or write operation
File
fopen
, Open file, or obtain information about open files
fwrite
, Write data to binary file
fread
, Read data from binary file
fclose
, Close one or all open files
fprintf, Write data to text file
Regelungstechnik / Control System
step
, Step response plot of dynamic system; step response data
stepDataOptions
, Options set for step
tf
, Create transfer function model, convert to transfer function model
zpk
, Create zero-pole-gain model; convert to zero-pole-gain model
impulse
, Impulse response plot of dynamic system; impulse response data
ss
, Create state-space model, convert to state-space model
Filter
filter
, 1-D digital filter: processing the input data ONLY in forward directions
filtfilt
, Zero-phase digital filtering: processing the input data in forward and reverse directions
designfilt
, Design digital filters
conv
, Convolution and polynomial multiplication
ECG / EKG
R Wave Detection in the ECG
Peak Analysis
Example of Measuring Heart Rate from Acquired ECG Signals
ECG simulation using MATLAB
Complete Pan Tompkins Implementation ECG QRS detector
s = tf('s'); I_Gs = Ks / (T1 * s); IT1_Gs = Ks / (T1 * s^2 + s); [ I_y, I_t] = step( I_Gs, Tend); [IT1_y, IT1_t] = step(IT1_Gs, Tend);
Properties
Root Properties, Graphics environment and state information
Figure Properties, Control appearance and behavior of figure window
Chart Line Properties (plot
)
Axes Properties
Text Properties
Legend Properties
Scatter Series Properties
Camera Properties
Low-Level Camera Properties
Low-Level Camera Properties
CameraViewAngle | Specifies the field of view of the “lens.” If you specify a value for CameraViewAngle, MATLAB overrides stretch-to-fill behavior (see the “Aspect Ratio” section). |
CameraViewAngleMode | In automatic mode, MATLAB adjusts the view angle to the smallest angle that captures the entire scene. In manual mode, you specify the angle. Setting CameraViewAngleMode to manual overrides stretch-to-fill behavior. |
% disable the stretch-to-fill behavior set(gca,'CameraViewAngleMode','manual'); set(gca,'CameraViewAngle',10); set(gca,'DataAspectRatio',[1 1 1]); daspect([1 1 1]); % X Y Z win = [ -1, 1, -1, 1, -1, 1]; axis equal; axis(win); === OR === camzoom(1);
camzoom
sets the axes CameraViewAngle
property, which in turn causes the CameraViewAngleMode
property to be set to manual
. Note that setting the CameraViewAngle
property disables the MATLAB stretch-to-fill
feature (stretching of the axes to fit the window). This may result in a change to the aspect ratio of your graph. See the axes
function for more information on this behavior.
MATLAB Game Programming
Call by value vs. Call by reference
Does MATLAB pass parameters using “call by value” or “call by reference”?
Can MATLAB pass by reference?
Pass variable by reference to function