The Nelson Programming Language
Python interface (part 2):
pyenv
: can use environment variables to set values.getenv
: Retrieve the values of several environment variables.
pyenv
: can use environment variables to set values.
pyrun
: Python code object allowed as first input argument.
nelson --without_python
starts nelson without python engine.
skip_testsuite
: allows to skip test suite dynamically on condition.
copyfile
, isfile
, isdir
, mkdir
allow string array type as input.single(int64([1 2; 3 4]))
returned a wrong value.py.tuple
, py.list
compatibility increased.pyenv
did not manage python's path with space on Windows.Python interface (part 1):
pyenv
Change default environment of Python interpreter.pyrun
Run Python statements from Nelson.ArchLinux packaging (https://aur.archlinux.org/packages/nelson-git).
contour
Contour plot of matrix.
contour3
3-D contour plot.
shiftdim
Shift array dimensions.
xcorr2
2-D cross-correlation.
deconv
Deconvolution and polynomial division.
vecnorm
Vector-wise norm.
normpdf
Normal probability density function.
#310 gammaln
Logarithm of gamma function.
#1112 gradient
Numerical gradient.
#1126 isspace
Determine which characters are space characters.
struct
supports scalar string array as field name.gcd
without argument returned wrong error message.Export to ...
context menu for console and text editor as pdf.CTRL + Mouse wheel
or CTRL + +/-
to zoom in/out on console, editor, help.zoom
, pan
, rotate3d
functions.MenuBar
, ToolBar
figure properties.feature
builtin (undocument features, debug, tests, ...) content can change with next releases.GridAlpha
, GridColor
, View
properties for Axes.checkupdate
function and check update menu.isScalarStringArray
iinternal API C++ method.saveas
exports the figure as a PDF page with centered alignment.MarkerFaceColor
value for compatibility.Nelson 1.0.0 has been released.
Nelson is an interactive, fully functional environment for engineering and scientific applications. It implements a matrix-driven language (which is largely compatible with MATLAB and GNU Octave), with advanced features such as 2-D 3-D plotting, image manipulation and viewing, a codeless interface to external C/C++/FORTRAN libraries, native support for various C types, and a host of other features.
Types managed by Nelson:
OpenMP
and SIMD
extensions used.
2D and 3D plotting with high-level plot commands.
Parallel Computing Module.
Fast Fourrier Transformation functions based on FFTW and MKL wrapper.
SLICOT (Subroutine Library in Systems and Control Theory) interfaces (optional).
Control System module.
Message Passing Interface (MPI): functions for parallel computing.
JSON decode/encode data support.
HDF5 high-level functions I/O,
HDF5 used as default data file format (.nh5) load/save workspace,
MAT-file compatible load/save workspace,
Foreign Function Interface C/Fortran.
Interfacing C/C++ or Fortran with Nelson (build and load external code on the fly).
MEX C API compatibility.
Nelson Engine API for C (compatible with MEX Engine). Call Nelson from your C code as engine.
RESTful API web service.
Inter-process communication between Nelson's process.
The QML engine enables nelson programs to display and manipulate graphical content using Qt's QML framework.
Component Object Model (COM) client interface: binary-interface standard for software components on Windows.
Write/Read xlsx files on Windows using COM.
Embedded Nelson code editor.
Help engine:
Generate help files using Nelson dedicated functions. View your generated help files as html, markdown, pdf, gitbook or directly in Nelson help viewer.
Tests engine:
Validate your algorithm using Nelson dedicated functions. Export the test results under the xUnit reports format.
Profiling and Code coverage tools for Nelson's language:
Nelson has a built-in profiler that is very useful to profile your code and find out what script or function is taking the most time.
Nelson cloud: Instant access to Nelson anywhere from an web browser.
Module skeleton to extend Nelson available here:
Nelson Modules Manager (nmm) : package manager for Nelson
quit
, exit
, startup.m
, finish.m
behavior reworked for compatibility.cellfun
did not check type of second input argument.filter
1-D digital filter.
control system module (part 2):
freqresp
Evaluate system response over a grid of frequencies.step
Simulate continuous time model of a state space model or transfer function.lsim
Plot simulated time response of dynamic system to arbitrary inputs.dc2
Convert model from discrete to continuous time.c2d
Convert model from continuous to discrete time.augstate
Append state vector to output vector.kalman
Design Kalman filter for state estimation.evalfr
Evaluate system response at specific frequency.nyquist
Nyquist plot of frequency response.ord2
Generate continuous second-order systems.append
Group models by appending their inputs and outputs.feedback
Feedback connection of multiple models.parallel
Parallel connection of two models.series
Series connection of two models.ssdelete
Remove inputs, outputs and states from state-space system.ssselect
Extract subsystem from larger system.tzero
Invariant zeros of linear system.tf2ss
Convert transfer function filter parameters to state-space form.ss2tf
Convert state-space representation to transfer function.minreal
Minimal realization or pole-zero cancellation.ssdata
Access state-space model data.tfdata
Access transfer function data.gram
Controllability and observability Gramians.hsvd
Hankel singular values of a state-space or transfer function model.damp
Natural frequency and damping ratio.balreal
Gramian-based balancing of state-space realizations.lqry
Form linear-quadratic (LQ) state-feedback regulator with output weighting.dlqr
Linear-quadratic (LQ) state-feedback regulator for discrete-time state-space system.lqed
Discrete Kalman estimator design from continuous cost function.lqe
Kalman estimator design for continuous-time systems.lqr
Linear-Quadratic Regulator (LQR) design.dare
Solve discrete-time algebraic Riccati equations.care
Continuous-time algebraic Riccati equation solution.ctrbf
Compute controllability staircase form.ctrb
Controllability of state-space model.obsv
Observability matrix.obsvf
Compute observability staircase form.acker
Pole placement gain selection using Ackermann's formula.bdschur
Block-diagonal Schur factorization.cloop
Close unity feedback loops.compreal
Companion realization of transfer functions.gensig
Create periodic signals for simulating system response.hist
Histogram plot.bar
Bar graph.scatter
Scatter plot.stem
Plot discrete sequence data.stairs
Stairstep graph.fill
2-D patch.pie
legacy pie chart.subsref
Subscripted reference.subsasgn
Redefine subscripted assignment.substruct
Create structure argument for subsasgn or subsref.deal
Distribute inputs to outputs.hggroup
.axes
forces focus on current axe.patch
and fill
manages FaceAlpha
.subsref
, subsasgn
compatibility with substruct
.A = []; A(false) = zeros(3, 0)
did not return an empty matrix but an error.private functions/folders support (to limit the scope of a function).
syntax extended to facilitate the creation of literal integers without loss of precision:
18446744073709551615u64
, 18446744073709551615i64
(similar to rust syntax)flintmax('like', p)
syntax added.
int64
, uint64
warning about double-precision.
#570 balance: Diagonal scaling to improve eigenvalue accuracy.
isobject
Check whether the input is an object.
cell2mat
Convert cell array of matrices to single matrix.
#948 blkdiag
Create a block diagonal matrix from 2D matrices of different sizes.
kron
Kronecker tensor product.
strjust
Justify strings.
control system module (part 1):
mag2db
, db2mag
, pow2db
, db2pow
functions.zp2tf
: Zero-pole to transfer function conversion.dcgain
: Low-frequency (DC) gain of LTI system.padecoef
: Padé approximation of time delays.esort
: Sort continuous-time poles by real part.dsort
: Sort discrete-time poles by magnitude.lyap
: Continuous Lyapunov equation solution.dlyap
: Discret Lyapunov equation solution.abcdchk
Verifies the dimensional compatibility of matrices A, B, C, and D.ss
: State-space model.tf
: Transfer function model (display, horzcat, vertcat, size).isct
: checks if dynamic system model is in continuous time.isdt
: checks if dynamic system model is in discret time.isstatic
: checks if model is static or dynamic.islti
: checks if variable is an linear model tf, ss or zpk.issiso
: checks if dynamic system model is a single input and single output.zero
: Zeros and gain of SISO dynamic system.pole
: Poles of dynamic system.bode
: Bode plot of frequency response, magnitude and phase data.xlabel
on figure
.#488 overloading functions:
.*
operator optimized.
conv2
optimized.
Boost 1.82 used on Windows.
Internals:
class
, function_handle
types reworked.repmat
, ones
, NaN
, Inf
reworked.function_handle
display is more compatible.
--withoutfilewatcher
executable argument. disable file watcher for current session.<--FILE WATCHER REQUIRED -->
test_run option.