Changelog
Last updated
Was this helpful?
Last updated
Was this helpful?
All notable changes to this project will be documented in this file.
The format is based on , and this project adheres to .
This release introduces performance improvements and new graphical capabilities while deprecating support for 32-bit Windows versions.
Windows x64 Compatibility: Now requires the instruction set.
Windows 32-bit Support: Official distribution of 32-bit Windows binary versions has been discontinued.
macOS Optimization: Builds for macOS with M-series chips now leverage native optimizations for improved performance.
Plot Performance: Optimized plot
and plot3
functions for increased speed. Example:
Dependencies Updated:
Upgraded fmtlib
to version 11.1.3.
Intel Math Kernel Library (MKL) updated to 2025.0.1 on Windows.
Internal Enhancements:
OpenMP multithreading macros have been reworked for better efficiency.
SLICOT
module incorporates SLICOT library 5.9, which is distributed under the BSD-3-Clause license.
SLICOT
module available on all platforms by default.
python 3.13.2 embedded on Windows
Double Buffering for Plots:
Implemented double buffering to enhance the smoothness and responsiveness of graphical plots.
Significantly reduces flickering during graphical updates.
New Graphics Functions:
getframe
: Captures an axes or figure as a movie frame.
movie
: Plays recorded movie frames.
im2frame
: Converts an image to a movie frame.
frame2im
: Returns image data associated with a movie frame.
DevicePixelRatio
: New figure property to handle display scaling.
Graphics IO module:
imwrite
: create gif animations.
imwrite
, imread
: pcx, tiff file formats managed.
imformats
: Manage image file format registry.
New Example:
Added an example for connecting ollama
with Nelson:
CMake Enhancement:
Introduced ENABLE_AVX2
CMake option for systems that support AVX2.
CMake dependencies reworked.
MacOs: Default terminal did not use monospaced font.
Some warnings detected with PVS-studio
Julia interface (part 1):
jlenv
: Change default environment of Julia interpreter.
jlrun
: Run Julia statements from Nelson.
jlrunfile
: Run Julia file from Nelson.
Major types conversions are available.
CMake: Optional Julia engine detection.
bar
, scatter
manage color name and short colorname.
Github CI Ubuntu 24.04 arm64 (Cobalt 100 processor).
Github CI Snapcraft build amd64 and arm64.
Snapcraft arm64.
Completion .m files allows execution without extension.
urlencode
: Replace special characters in URLs with escape characters.
docroot
: Utility to retrieve or define the root directory of Nelson Help.
ismodule
: second input argument isprotected
added.
editor('editor_command', cmd)
allows to change text editor in Nelson (for example: VS Code).
NELSON_RUNTIME_PATH
environment variable added by installer on Windows.
--vscode
command line argument added.
Help Center: Access documentation in your system's web browser. Previously, the documentation was opened in the embedded Help browser.
CA certificate store update.
fmt library dependency updated.
BS::threadpool library dependency updated.
Advanced terminal updated (common for all platforms without GUI, auto completion, search history).
Python 3.13.1 supported.
detectImportOptions
: Generate import options from the file's content.
readtable
: Read table from file.
writetable
: Write table to file.
readcell
: Read cell array from file.
writecell
: write cell array to file.
readmatrix
: read matrix from file.
writematrix
: write matrix to file.
csvread
: Read comma-separated value (CSV) file.
csvwrite
: Write comma-separated value (CSV) file.
dlmread
: Read ASCII-delimited file of numeric data into matrix.
realmin
: Smallest normalized floating-point number.
join
: Combine strings.
hour
, minute
, second
component of input date and time.
narginchk
, nargoutchk
support for check only minimun arguments narginchk(3, Inf)
.
Fedora 41 CI
title
: Visible
property is inherited from the parent if not explicitly defined.
i18n: migration PO files to JSON.
dlmwrite
: rework the function to be more fast and robust.
strjust
: rework the function to be more fast and robust.
datenum
: support '' as format for compatibility.
Table direct computation:
unary functions: abs
, acos
, acosh
, acot
, acotd
, acoth
,acsc
, acscd
, acsch
, asec
, asecd
, asech
,asin
, asind
, asinh
, atan
, atand
, atanh
,ceil
, cosd
, cosh
, cospi
, cot
, cotd
,coth
, csc
, cscd
, csch
, exp
, fix
,floor
, log
, log10
, log1p
, log2
, nextpow2
,round
, sec
, secd
, sech
, sin
, sind
,sinh
, sinpi
, sqrt
, tan
, tand
, tanh
,var
, acosd
, not
.
binary functions: plus
, minus
, times
, eq
, ge
, gt
, le
,ne
, lt
, rdivide
, rem
, power
, pow2
, or
, mod
, ldivide
.
end
magic keyword can be overloaded for classes (applied to table
class).
Qt 6.8 LTS support (used on Windows 64 bits binary).
Python 3.13.0 on Windows.
Boost 1.86 on Windows.
table
Data Type:
Introduced the table
data type, offering enhanced functionality for structured data manipulation.
Overloaded methods specific to the table
data type:
disp
, display
for table display.
horzcat
, vertcat
for horizontal and vertical concatenation.
isempty
to check if the table is empty.
isequal
, isequalto
for table comparison.
properties
for accessing table metadata.
subsasgn
for subscripted assignment.
subsref
for subscripted referencing.
Conversion functions added:
array2table
: Convert an array to a table.
cell2table
: Convert a cell array to a table.
struct2table
: Convert a structure to a table.
table2array
: Convert a table to an array.
table2cell
: Convert a table to a cell array.
table2struct
: Convert a table to a structure.
Utility functions introduced:
width
: Retrieve the number of columns in the table
height
: Retrieve the number of rows in the table
istable
: Check if a variable is of the table
data type
Resize
- Resize figure property.
CodeQL Github action updated.
fix 'units' refresh for 'axes' object.
uicontrol
Create user interface control (button, slider, edit, list box, etc.).
waitfor
Block execution and wait for condition.
waitforbuttonpress
— Wait for click or key press.
im2double
— Convert image to double.
CloseRequestFcn
— Close request callback for figure
.
CreateFcn
— Create callback for all graphic objects.
DeleteFcn
— Delete callback for all graphic objects.
BusyAction
— Busy action for all graphic objects.
Interruptible
— Interruptible property for all graphic objects.
BeingDeleted
— Being deleted property for all graphic objects.
KeyPressFcn
, KeyReleaseFcn
, ButtonDownFcn
properties for figure
.
Refactor the internal implementation of the 'system' built-in function.
Python 3.12.5 on Windows.
unique
: Unique values.
ndgrid
: Rectangular grid in N-D space.
nthroot
: Real nth root of real numbers.
allfinite
: Check if all array elements are finite.
j
as imaginary unit number is also supported. example 3+2j
equivalent to 3+2i
.
FollowLocation
option for weboptions
oneAPI Threading Building Blocks optional dependency.
Ubuntu 24.04 debian package.
Ubuntu 24.04 CI
sort
: speed optimization.
Windows dependencies updated and rebuild with minimal dependencies:
Qt 6.7.1,
Visual C++ 2022 Redistributable v14.40.33810.00,
boost 1.85,
Python 3.12.4,
Intel Math Kernel Library 2024.1.1,
Intel runtime,
SLICOT,
gettext 0.22.5,
cmake 3.30.0 rc3,
libsndfile 1.2.2,
portaudio 19.7.5,
taglib 2.0,
libzip1 1.3.1,
libcurl 8.8.0,
icu4c 74.2,
libffi 3.4.6,
libxml2 2.11.7
Unicode® Standard, Version 15.1 support
simdutf 5.2.8
fast_float 6.1.1
dtl 1.2.0
dictionary
data type.
dictionary
: Object that maps unique keys to values.
configureDictionary
: Create dictionary with specified key and value types.
insert
: Add entries to a dictionary.
lookup
: Find value in dictionary by key.
remove
: Remove dictionary entries.
entries
: Key-value pairs of dictionary.
keys
: Keys of dictionary.
values
: Values of dictionary.
types
: Types of dictionary keys and values.
numEntries
: Number of key-value pairs in dictionary.
isConfigured
: Determine if dictionary has types assigned to keys and values.
isKey
: Determine if dictionary contains key.
keyHash
: Generate hash code for dictionary key.
keyMatch
: Determine if two dictionary keys are the same.
bernsteinMatrix
: Bernstein matrix.
orderedfields
: Order fields of structure array.
Python interface (part 3):
keyHash
, keyMatch
for python objects.
isa
builtin support python types.
python dictionary to Nelson dictionary dictionary(pyDict)
conversion dictionary to python dictionary.
help files generated sorted by name on all platforms.
on windows, Qt libraries used are in debug mode.
Python interface (part 2):
numpy types support if numpy available.
pyenv
: can use environment variables to set values.
getenv
: Retrieve the values of several environment variables.
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.
Allow to call method of a variable of CLASS/HANDLE type like a function (currently, only plugged for python subtype).
copyfile
, isfile
, isdir
, mkdir
allow string array type as input.
warning about 'Matrix is singular to working precision' for inv matrix.
tests webtools skipped if connection fails or not available.
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.
Matio 1.5.27 compatibility on ArchLinux.
Ubuntu 24.04 LTS support.
Python interface (part 1):
CMake: Optional Python3 detection.
pyenv
Change default environment of Python interpreter.
pyrun
Run Python statements from Nelson.
Major types conversions are compatible (numpy in the next upcoming version).
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.
struct
supports scalar string array as field name.
Missing 'zoom in', 'zoom out' icons for help viewer in linux package.
gcd
without argument returned wrong error message.
Recursive completion on Graphic handle, struct, handle, class (properties, methods).
Adding links between documents about mex and supported compilers.
GitHub CI for macOS Sonoma (Apple Silicon) support.
Export to ...
context menu for console and text editor as pdf.
CTRL + Mouse wheel
or CTRL + +/-
to zoom in/out on console, editor, help.
Toolbar for figure with print, zoom in, zoom out, rotation, pan, restore axes.
zoom
, pan
, rotate3d
functions.
MenuBar
, ToolBar
figure properties.
Window menu on graphic window, list all others available windows.
feature
builtin (undocument features, debug, tests, ...) content can change with next releases.
GridAlpha
, GridColor
, View
properties for Axes.
CTRL+C in help viewer, copy selected text.
checkupdate
function and check update menu.
isScalarStringArray
iinternal API C++ method.
Clicking on an axis automatically sets it as the current axes object.
Clicking on an figure automatically sets it as the current figure object.
saveas
exports the figure as a PDF page with centered alignment.
Default color of grid for axes.
Default figure size updated.
Default MarkerFaceColor
value for compatibility.
view function returns azimuth and elevation values.
Camera view reworked.
Minimal screen resolution supported 800x600.
Change directory with file browser line editor did not work as expected.
Template to create a function with file browser was wrong.
Do not allow to select multiple variable in workspace browser.
File browser checks if files with the extension ".m" have a valid name before enable 'run' context menu.
Paste in editor with multiple tab.
Starting the Nelson desktop was taking longer than necessary.
Nelson Desktop environment: file browser, command history, workspace browser, desktop layout.
sky
, abyss
colormaps.
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:
double and double complex: scalar, vector, matrix 2D, N dimensions array, sparse matrix.
single and single complex: scalar, vector, matrix 2D, N dimensions array, sparse matrix.
logical: scalar, vector, matrix 2D, N dimensions array, sparse matrix.
character array (UNICODE supported).
string array (UNICODE supported).
integers 8, 16, 32, 64 signed and unsigned: scalar, vector, matrix 2D, N dimensions array.
handle objects.
anonymous functions,
all types can be overloaded.
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.
Module skeleton to extend Nelson available here:
Nelson Modules Manager (nmm) : package manager for Nelson
Github CI - Ubuntu-20.04 hosted runner image removed.
[display] integer in cell are displayed as double and not as integer.
mustBeSparse
validator function.
cmdsep
: Command separator for current operating system.
NixOS 24.11 packaging (see ).
Cell display could not be interrupted.
mustBeMatrix
, mustBeRow
, mustBeColumn
validator functions.
Large Table Display.
VariableTypes
property for table: Specify the data types of table in Nelson.
datevec
result must be normalized.
some features have no help files.
micromamba macos build.
head
, tail
functions for table and array.
removevars
, renamevars
functions for table.
Add macOS Sequoia and remove macOS Monterey CI support.
datenum
format compatibility extended.
datestr
Convert date and time to string format.
bode
did not unwrap phase.
balance
yields wrong Transformation Matrix.
diag
may return wrong sub-diagonals.
buildhelpmd does not generate SUMMARY as expected.
Matrix Exponential expm
might give wrong results.
Matrix Parsing/Evaluation trouble.
Python operators in Nelson.
strcmp({'a'},["a"])
did not return expected value.
Run Python script file from Nelson.
Help about Managing Data between Python and Nelson.
python bytes, and bytearray types were not managed.
pyenv searchs python by version on Windows.
Embed python distribution on Windows.
Help about how to install Python package from Nelson.
Github Actions updated.
Qt 6.7 support (used on Windows 64 bits binary).
test_run markdown help file had a typo.
Linux Snapcraft version did not allow to use python.
pyrun('print(A)','A','A',string(NaN)) did not return expected value.
Fedora 40 support (CI).
[CI] MacOS X Ventura restored.
gammaln
Logarithm of gamma function.
gradient
Numerical gradient.
isspace
Determine which characters are space characters.
Eigen master branch (352ede96e4c331daae4e1be9a5f3f50fff951b8d) ready to use.
[CI] MacOS X Ventura disabled (Install dependencies fails)
add help about build and use C/C++ on fly.
unexpected result from long statements on Multiple Lines.
Nelson could crash if an mxn characters is displayed in the variable browser.
Unsupported colon operator with char operands.
[CI] [ARCH LINUX] Warning about MPI.
Roadmap v2.0.0
: LU matrix factorization.
LineStyle
, LineWidth
properties were not implemented for surface objects.
: Instant access to Nelson anywhere from an web browser.
,
.