The main difference is in how the connection strengths between neurons are specified. For other neural simulators, you either set these weights manually or you set them randomly and specify a learning rule. Nengo allows you to specify the overall function that should be computed, and then it will solve for the connection weights that will best approximate that function. This allows the model designer to work at a higher level of abstraction (vectors and functions) and yet still produce a detailed model using realistic spiking neurons. You can use the other methods to specify and/or adapt weights as well.
Yes. Nengo can use any sort of neuron model, including the common non-spiking rate neuron models. Indeed, you can even change from spiking neurons to rate neurons in the middle of a simulation, or have a mixture of spiking and rate neurons in your model. Nengo also supports various learning rules. You can also manually specify connection weights, if desired.
Many example functions can be found in the "demo" directory of a standard Nengo install. They are explained in the documentation, and many are explained in the videos. You can also look through the Nengo Model Archive to find examples.
Yes. See the various scripts in the demos and videos section of this website with 'learning' in the title. Several papers in the CNRG Publications section also discuss learning in some detail. Such as this one, and this one.
A: You can! For a detailed explanation, see this blog post, but all it takes is one line of code.
A plot with a ton of whitespace, specifically sized with the line
The same data plotted with the following additional line right after the figure call above, will have little whitespace.
set(gca, 'Position', get(gca, 'OuterPosition') - ...
get(gca, 'TightInset') * [-3 0 3 0; 0 -3 0 4; 0 0 3 0; 0 0 0 3]);
Note that the matrix at the end of the above line can be tweaked to change the margin on each of the four sides.