Major Bug Fixes for Release 12.1
This document describes major bug fixes for the following:
For previous bug fixes, see Major Bug Fixes from Recent Releases, below.
Data Acquisition Toolbox
Click on a problem listed below to read how it has been fixed in Release 12.1.
New Channel Properties
Daqhwinfo
Properties
Data Logging
Putdata
Adaptors - Nidaq
Adaptors - Hpe1432
New Channel Properties
- Two read-only properties, NativeOffset and NativeScaling, have been added to analog input and analog output channels. These properties can be used to convert data in native format to doubles with the formula:
slope = ai.Channel(1).NativeScaling;
intercept = ai.Channel(1).NativeOffset;
data = slope*nativeData(:,1) + intercept;
Daqhwinfo
- The ConversionExtraScaling and ConversionOffset fields have been removed from daqhwinfo('adaptor') where adpator is winsound, nidaq or hpe1432. The Channel properties NativeOffset and NativeScaling should be used to convert data in native format to doubles.
- If an older version of the comcat.dll is on your computer, DAQHWINFO with no input arguments will not work. However, DAQHWINFO with input arguments will work and the rest of the toolbox will work. For additional information, please refer to:
http://www.mathworks.com/support/solutions/v5/23852.shtml
Properties
- When the SamplesPerTrigger property is set to a small number and the TriggerRepeat property is set to a large number, and the analog input object is started, your machine may lock up. This will generally occur when SampleRate/SamplesPerTrigger is greater than 1000 and the TriggerRepeat property is greater than 1000. If the analog input object's properties follow the characteristics
described above, you will receive the following warning message:
Warning: Engine Block Size is small. Check SamplesPerTrigger.
Starting may lock up the machine.
As a workaround, the SamplesPerTrigger property should be set to the number of samples you would like to acquire and TriggerRepeat should be set to 0.
Data Logging
- The UserData information is not returned from a .daq file.
Putdata
- The BitsPerSample, InputRange, SensorRange and UnitsRange properties should not be modified after calling PUTDATA.
- A channel cannot be added after calling PUTDATA.
Adaptors - Nidaq
- When running at a sampling rate of 5000 or higher and with a TransferMode value of Interrupt, there may be a considerable decline in system performance.
- The TriggerChannel for National Instruments 61110 and 61111 boards is always the first channel in the channel array.
- It is recommended that the SampleRate property is the last property set with SETVERIFY before starting since the SampleRate value is dependent upon the number of channels and the ChannelSkew property value.
- When using the 1200 series hardware, channels must be added in reverse order. If invalid channels are given, the data acquisition engine will create the number of requested channels with valid hardware ids. The hardware ids used can be determined from the object's display or from the channel's HwChannel property value.
- Only one digital I/O object should be pointing to the same hardware. To perform separate tasks on the hardware lines, all the necessary lines should be added to the same object and separate line groups should be created to perform the separate tasks.
- All channels contained within an analog input object must have all unipolar InputRange property values or all bipolar InputRange property values. A channel array cannot contain channels with a unipolar InputRange and channels with a bipolar InputRange.
- When using mux boards with National Instruments, the channels must be added in a specific order. For additional information, please refer to the online help for addmuxchannel.
- The PCI-1200 does not work properly with sample rates below 30-40 Hz if the TransferMode is set to SingleDMA. If the TransferMode value is Interrupt, the PCI-1200 works properly.
Adaptors - Hpe1432
- For the HP E1432A and HP E1433A boards with the Arbitrary Source Output option, if an analog input object is created and started, the source will also be started. Due to this behavior of the hardware, a TriggerType of Manual should not be used for the HP E1432A and HP E1433A hardware with the Arbitrary Source Output option.
- For analog output objects, it is recommended that the SampleRate or Span property is the last property set with SETVERIFY before starting since the SampleRate and Span values are dependent upon the number of channels contained in the analog output object.
- The first time an analog input or analog output object is connected to the HP hardware, a list of available HP hardware is determined and all the hardware is initialized. Due to an HP limitation, this list is not updated during a MATLAB session. Therefore, if you install a new board or remove an existing board while MATLAB is
running, MATLAB will not see the new configuration and the old configuration will still be used. To have MATLAB see the new configuration, you must restart MATLAB.
- Due to an HP limitation, the minimum SampleRate on the HP E1433A is 20Hz and the minimum Span on the HP E1433A is 7.8125.
- The first channel in the TriggerChannel property will be used to trigger the object.
- The HP E1434A channels 1 and 2 and channels 3 and 4 share a 56000 DSP. Therefore, certain operational aspects will be coupled between the channels in each pair. For example, both channels in each pair will have the same RampRate.
- Channels must be added in increasing order and a channel array cannot contain repeated channels.
- All hardware is initialized the first time an HP object is created. When all HP objects are deleted from the data acquisition engine, all the hardware is closed.
- It is recommended that if an object is created which spans multiple boards, that the object is created with the logical addresses listed in the same order in which they were found. The DAQHWINFO command with no input arguments will list the InstalledBoardIds in the order in which the logical addresses were found.
Optimization 2.1.1 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in Release 12.1.
FMINCON: lower and upper bounds are respected during gradient finite-differencing.
LINPROG and QUADPROG: default MaxIter for medium-scale algorithms is Inf.
FMINCON: lower and upper bounds are respected during gradient finite-differencing.
If you provide lower or upper bounds, FMINCON enforces these bounds during gradient
finite-differencing.
Previously, FMINCON sometimes violated these bounds by small amounts.
LINPROG and QUADPROG: default MaxIter for medium-scale algorithms is Inf.
If the 'LargeScale' option is 'off', LINPROG and QUADPROG set the default
MaxIter to Inf (as in versions 2.0 and earlier). Previously, in release
2.1, they set the default MaxIter to be the same as the large-scale
algorithms. This sometimes caused a premature exit and required the user to
manually override the MaxIter value.
Wavelet Toolbox
Click on a problem listed below to read how it has been fixed in Release 12.1.
Frequency information in the Continuous Wavelet 1-D tools
Complex Continuous Wavelet 1-D demo
Frequency information in the Continuous Wavelet 1-D tools
Switching from Scale to Pseudo-Frequency is now correctly displayed in the Dynamic Visualization
Tool.
Complex Continuous Wavelet 1-D demo
The demo no longer issues a warning in the MATLAB command window.
Major Bug Fixes From Recent Releases
This document describes major bug fixes for the following:
MATLAB 6.0 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in a previous release.
Stereo sound: recording both channels
Bitmaps stretched evenly when printing
Resize figure window using original units during printing
Colormaps correct when printing two or more images
Print to metafile at higher than screen resolution
IFFT2 uses correct scale factor for N-dimensional inputs
GRIDDATA more robust
DELAUNAY reverts to its MATLAB 5.2 behavior
INTERP1(X,Y,XI,'cubic') no longer calls 'spline' method on irregularly spaced data
DBLQUAD no longer accepts a trace argument
ODE solvers produce output at all time points specified in TSPAN.
Stereo sound: recording both channels
Recording a stereo .wav file now works correctly. Previously, the recorded sound was
distorted (missing a channel) on playback.
Bitmaps stretched evenly when printing
Stretched bitmaps are now stretched evenly when printing. Previously,
one column of the stretched image would occasionally print at double width.
Resize figure window using original units during printing
The printing code now calls each figure's ResizeFcn (if the figure has one) with
the figure units unchanged. Previously, ResizeFcn was called after setting the
figure units to paper units.
Colormaps correct when printing two or more images
The color postscript driver now preserves the colors of multiple images (or axes) printed on
same page. Previously, some incorrect colors may have appeared in the output.
Print to metafile at higher than screen resolution
The -r (resolution) flag now allows you to specify any resolution when printing to a
metafile. Previously, you could only print to metafiles at your screen resolution.
IFFT2 uses correct scale factor for N-dimensional inputs
IFFT2 now applies the correct scale factor in the case where the input has
3 or more dimensions and the user supplies the optional mrows and mcols
input arguments. Previously, IFFT2's output was off by a constant scale
factor in this case.
GRIDDATA more robust
GRIDDATA now uses DELAUNAYN to compute its triangles instead of DELAUNAY.
This is more robust in many cases. Previously, GRIDDATA used to return NaNs
when used on certain cases.
DELAUNAY reverts to its MATLAB 5.2 behavior
A MATLAB 5.2 bug in DELAUNAY was fixed for MATLAB 5.3 but this caused different results in some cases. In some cases, the warning "Degenerate case: collinear points. Possible incorrect triangulation." was issued. A modification to this bug fix returns the MATLAB 5.2 answer in MATLAB 6.0.
INTERP1(X,Y,XI,'cubic') no longer calls 'spline' method on irregularly spaced data
INTERP1(X,Y,XI,'cubic') now calls 'pchip' and returns cubic interpolation even when
the data is not equally spaced. Previously, INTERP1 used to call 'spline' when the data was not equally spaced.
The old behavior is still accessible through INTERP1(X,Y,XI,'v5cubic').
DBLQUAD no longer accepts a trace argument
DBLQUAD used to accept a trace argument, ostensibly in order to pass it on to quad. This was simply a placeholder and had no effect on the function, so it was removed.
ODE solvers produce output at all time points specified in TSPAN.
SOLVER(ODEFUN,TSPAN,Y0) called with a vector TSPAN now evaluates
the solution at all time points specified in TSPAN. Previously, due to
rounding errors, the solution was not always evaluated at the last point of
TSPAN.
MATLAB 5.3.1 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in a previous release.
Invisible figures cause focus changes to be slow (UNIX only)
Invalid movies caused a segmentation violation
getframe sometimes fails to capture uicontrols (UNIX only)
getframe fails with truecolor using less than 24 bits (UNIX only)
Memory leaked when converting arrays from MATLAB to Java
Using CAT with cell or struct arrays may result in a crash
MATLAB may crash while reading a corrupt MAT-file
Incorrect results when doing complex division in array initialization
Displaying structures with long field names can cause an assertion
Colon indexing with sparse cell arrys can cause an assertion
Error occurs when using GUIDE Control Panel
Old P-files may cause crash when displaying cell arrays or structures
MATLAB may crash on HP systems with HP's Y2K patch (HP700 only)
MATLAB may fail to start when running on IRIX 6.5 (SGI/SGI64 only)
Invisible figures cause focus changes to be slow (UNIX only)
Creating invisible figure windows caused Matlab to thrash the X
server during focus changes. This his been fixed.
Invalid movies caused a segmentation violation
Previously, calling the movie command with a movie array in which one
or more elements were unitialized caused a segmentation violation.
This now causes an error.
getframe sometimes fails to capture uicontrols (UNIX only)
The getframe function now always captures uicontrols.
getframe fails with truecolor using less than 24 bits (UNIX only)
The getframe function now supports truecolor XWindows visuals using fewer
than 24 bits.
Memory leaked when converting arrays from MATLAB to Java
Extensive use of the MATLAB/Java interface could result in exhaustion
of system memory. This memory leak has been plugged.
Using CAT with cell or struct arrays may result in a crash
Certain usages of CAT with cell or struct arrays or empty arrays can
result in a segmentation violation. This regression from MATLAB 5.2 has
been corrected.
MATLAB may crash while reading a corrupt MAT-file
It is possible to encounter a segmentation violation when reading a
corrupted MAT-file due to misplaced error check. This problem has been
corrected.
Incorrect results when doing complex division in array initialization
A constant expression involving division by an imaginary number
(e.g. 3/i) produced random results when used in forming an array.
Displaying structures with long field names can cause an assertion
Displaying structures with long field names can cause an "Attempt to
free previously freed memory" assertion due to a flow-of-control error.
This problem has been corrected.
Colon indexing with sparse cell arrys can cause an assertion
An expression of the form b{1} = sparse(eye(4)); b{1}(1,1)
would cause an "Attempt to free previously freed memory" assertion. This
problem has been fixed.
Error occurs when using GUIDE Control Panel
Opening the GUIDE Control Panel on Microsoft Windows with no open Figure
windows can cause an error under certain circumstances. This problem has
been corrected.
Old P-files may cause crash when displaying cell arrays or structures
Cell array or structure expressions that display their results (i.e., are
not terminated with a semicolon) may result in a crash when run in MATLAB 5.3
if they were saved in a P-file with MATLAB 5.2 or earlier.
MATLAB may crash on HP systems with HP's Y2K patch (HP700 only)
A symbol name conflict between one of our third party libraries and one of
HP's system libraries can cause MATLAB to crash when creating new files. This
issue has been resolved via an updated library.
MATLAB may fail to start when running on IRIX 6.5 (SGI/SGI64 only)
IRIX 6.5 no longer ships with certain math libraries that MATLAB depends on.
The missing libraries are now provided as part of the MATLAB distribution in
$matlab/sys/os/sgi[64].
Communications Blockset 2.0 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in a previous release.
Some blocks do not support Real-Time Workshop code generation
Some blocks are not compatible with the Simulink Accelerator
The digital modulators produce continuous-time outputs and process datain continuous time
The M-FSK demodulators use incorrect correlation
The complex Rayleigh fading channels have incorrect characteristics
Probabilities of ones in output from the Binary Vector Noise Generatorare incorrect
Gaussian Noise Generator uses wrong sample time
PN Sequence Generator repeats its output
Eye and scatter plot blocks produce an error if you close the figure windowand run the simulation again
Scrambler and Descrambler give incorrect results for non-base-2 calculations
Scrambler and Descrambler ignore all elements other than the first in acalculation base vector
Scrambler and Descrambler negate the results when the initial states containnegative numbers
The AWGN Channel produces all-zero outputs when given continuous-time inputsin both of the Signal to noise ratio (Es/No and SNR) modes
Segmentation violation when blocks are given invalid or empty parameters
Some blocks do not support Real-Time Workshop code generation
You can now generate code with all blocks using Real-Time Workshop, except the blocks listed in the "Known Software and Documentation Problems" section of the Communications Blockset chapter of the Release Notes.
Some blocks are not compatible with the Simulink Accelerator
All blocks, except the analog passband modulators and demodulators, are
now compatible with the Simulink Accelerator. (Update: As of Release 12.1, all blocks in the blockset are compatible with the Simulink Accelerator.)
The digital modulators produce continuous-time outputs and process datain continuous time
All of the digital modulators and demodulators have been rewritten and
they now process data in discrete time and produce discrete-time outputs.
The M-FSK demodulators use incorrect correlation
The M-FSK demodulators now do a complex correlation of the input.
The complex Rayleigh fading channels have incorrect characteristics
The noise produced by the Rayleigh fading channels did not match with what
is specified in the mask dialog. The two complex Rayleigh fading
channels have now been replaced by the Multipath Rayleigh Fading Channel,
which models real-world mobile communications effects.
Probabilities of ones in output from the Binary Vector Noise Generatorare incorrect
The probabilities of ones in the output of the Binary Vector Noise Generator
now match what is specified in the mask.
Gaussian Noise Generator uses wrong sample time
The Gaussian Noise Generator now uses the correct sample time as what is
specified in the mask.
PN Sequence Generator repeats its output
The PN Sequence Generator has been rewritten and now gives the correct
results.
Eye and scatter plot blocks produce an error if you close the figure windowand run the simulation again
You can now run the simulation again after you close the figure window.
Scrambler and Descrambler give incorrect results for non-base-2 calculations
Scrambler and Descrambler now perform properly for any integer calculation
base greater than 1.
Scrambler and Descrambler ignore all elements other than the first in acalculation base vector
Scrambler and Descrambler now accept only a scalar calculation base.
Scrambler and Descrambler negate the results when the initial states containnegative numbers
Scrambler and Descrambler now accept only nonnegative numbers as initial
states.
The AWGN Channel produces all-zero outputs when given continuous-time inputsin both of the Signal to noise ratio (Es/No and SNR) modes
The AWGN Channel now does not accept continuous-time input for both of
the Signal to noise ratio (Es/No and SNR) modes.
Segmentation violation when blocks are given invalid or empty parameters
All blocks now produce an error when given invalid or empty parameters.
Communications Toolbox 2.0 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in a previous release.
VITERBI is slow and does not decode correctly
DDEMOD and DDEMODCE do not produce correct symbol error rates
DMOD and DMODCE generate incorrect waveform for MSK and FSK
GFADD, GFSUB, GFDIV, GFMUL, GFCONV and GFDECONV return incorrect answers
GFMINPOL returns incorrect answers when first input is -Inf or when p>2. The function also sometimes crashes
GFPLUS and RSENCODE returns incorrect answers for negative inputs
GFLINEQ returns incorrect answers in prime Galois fields of order greaterthan 2
GFPRIMDF produces "out of memory" messages for degrees higher than 24
DECODE using the cyclic decoder option does not decode (23,12) Golay codecorrectly
GFPRIMFD finds incorrect primitive polynomial
GFTUPLE returns incorrect answers when m=1
GFPRIMCK, GFTRUNC, GFADD and GFFILTER causes segmentation violations
GFPRIMCK returns incorrect answers if p > 2 or inputs are large.
DECODE incorrectly decodes block codes
RCOSFLT does not correctly filter and upsample the input signal
EYESCAT is difficult to use and plots I and Q components together
ADEMOD ignores the phase offset parameter under the 'pm' option andhas no sensitivity parameter under the 'fm' option
ADEMOD 'pm' option - sensitivity parameter is required and causes a dcoffset
RANDINT hangs when the range is large
RANDBIT output is not random
VITERBI is slow and does not decode correctly
VITERBI has been replaced by a new function, VITDEC, which is much faster
and decodes correctly.
DDEMOD and DDEMODCE do not produce correct symbol error rates
DDEMOD and DDEMODCE now produce the optimal symbol error rate in AWGN for
PSK, ASK, QASK (QAM), FSK, and noncoherent FSK.
DMOD and DMODCE generate incorrect waveform for MSK and FSK
DMOD and DMODCE now generate the correct waveform for MSK and FSK.
GFADD, GFSUB, GFDIV, GFMUL, GFCONV and GFDECONV return incorrect answers
GFADD, GFSUB, GFDIV, GFMUL, GFCONV and GFDECONV have been improved in
the following ways:
-
Correct answers for prime and extension Galois fields, including prime
fields, GF(p), where p>2.
-
Correct handling of -Inf and negative values for extension Galois fields.
-
Enhanced help descriptions to better distinguish the purposes of the functions.
-
Improved input parameter checking.
GFMINPOL returns incorrect answers when first input is -Inf or when p>2. The function also sometimes crashes
GFMINPOL now returns the correct answers and does not crash.
GFPLUS and RSENCODE returns incorrect answers for negative inputs
GFPLUS now returns correct answers for negative inputs. This fix
also allows RSENCODE to return correct results.
GFLINEQ returns incorrect answers in prime Galois fields of order greaterthan 2
GFLINEQ now solves linear equations in prime Galois fields of order greater
than 2.
GFPRIMDF produces "out of memory" messages for degrees higher than 24
GFPRIMDF now uses less memory and can find primitives of degrees greater
than 24. However, this calculation will take considerable time.
DECODE using the cyclic decoder option does not decode (23,12) Golay codecorrectly
The cyclic decoder now decodes the (23,12) Golay code correctly.
GFPRIMFD finds incorrect primitive polynomial
GFPRIMFD finds the correct primitive polynomial for the given Galois field.
GFTUPLE returns incorrect answers when m=1
GFTUPLE now returns the correct answers when m=1.
GFPRIMCK, GFTRUNC, GFADD and GFFILTER causes segmentation violations
GFPRIMCK, GFTRUNC, GFADD and GFFILTER do not cause segmentation violations.
GFPRIMCK returns incorrect answers if p > 2 or inputs are large.
GFPRIMCK correctly determines if a polynomial is irreducible and/or primitive.
DECODE incorrectly decodes block codes
DECODE now correctly decodes block codes using either the [I P] or [P I]
standard forms of the generator and parity-check matrices.
RCOSFLT does not correctly filter and upsample the input signal
RCOSFLT now applies the correct raised-cosine filter type and fully filters
and upsamples the input signal.
EYESCAT is difficult to use and plots I and Q components together
EYESCAT has been replaced by new functions, EYEDIAGRAM and SCATTERPLOT,
which are easier to use, plot I and Q components separately, and allow
X-Y plots.
ADEMOD ignores the phase offset parameter under the 'pm' option andhas no sensitivity parameter under the 'fm' option
The phase offset now causes the correct phase offset in the demodulator.
New parameters were introduced to allow the sensitivity to be changed.
ADEMOD 'pm' option - sensitivity parameter is required and causes a dcoffset
ADEMOD now has an optional parameter called 'VCOconst' that replaces sensitivity
and does not cause a dc offset.
RANDINT hangs when the range is large
RANDINT no longer hangs for large numbers.
RANDBIT output is not random
RANDBIT has been replaced by a new function, RANDERR, which generates
random output and supports for seeding.
Optimization 2.1 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in a previous release.
QUADPROG and LINPROG: empty f vector assumes f=zeros(n,1).
QUADPROG iterates no more than 'MaxIter' iterations.
LINPROG: option 'Display' set to 'off' suppresses all messages.
FSOLVE sets the EXITFLAG output argument correctly when 'Display' is 'off' .
LSQLIN: memory usage reduced in medium-scale algorithm.
FMINUNC, LSQCURVEFIT, and LSQNONLIN line search algorithms no longer use " \ ".
QUADPROG and LINPROG: empty f vector assumes f=zeros(n,1).
In calls such as
QUADPROG(H,f,A,b)
or
LINPROG(f,A,b)
if f = [], f is treated as if f = zeros(n,1). Previously, f = [] would sometimes cause
poor solutions or incorrect messages about lack of convergence.
QUADPROG iterates no more than 'MaxIter' iterations.
QUADPROG will iterate no more than the value of 'MaxIter'. Previously, QUADPROG would
iterate up to the value of 'MaxIter' + 1 iterations.
LINPROG: option 'Display' set to 'off' suppresses all messages.
Setting 'Display' to 'off' in the options passed to LINPROG now suppresses all
messages. Previously, messages about exit conditions were sometimes printed.
FSOLVE sets the EXITFLAG output argument correctly when 'Display' is 'off' .
When 'Display' is set to 'off', the EXITFLAG output argument from FSOLVE is set
correctly. Previously, the EXITFLAG would sometimes have the incorrect value.
LSQLIN: memory usage reduced in medium-scale algorithm.
LSQLIN with 'LargeScale' set to 'off' uses less memory by using an
"economy-sized" QR factorization when possible. Previously, if the first
argument was a large m-by-n matrix where m>>n, an out of memory message was
generated. It is still possible to have a large enough matrix that the out of memory
message is generated, but "large enough" is bigger than it was before.
FMINUNC, LSQCURVEFIT, and LSQNONLIN line search algorithms no longer use " \ ".
Line search algorithms for FMINUNC, LSQNONLIN, and LSQCURVEFIT avoid divide by zero
messages. Previously, the algorithms used backslash (" \ ") in such a way that
extraneous divide by zero warnings were sometimes printed to the screen.
Signal Processing Toolbox 5.0 Major Bug Fixes
Click on a problem listed below to read how it has been fixed in Release 12.0.
xcorr computes cross-correlation correctly
lpc now returns the prediction error variance correctly
fircls correctly handles frequency steps bigger than 0.01
Made remez more robust
Improved help for hilbert
Fixed axis labeling in freqz
AR spectral estimation methods calculate the one-sided PSD
pmtm now computes one-sided and two-sided PSD
Improved handling of input string flag to ss2sos
tf2latc correctly normalizes transfer function
xcorr computes cross-correlation correctly
We now compute the cross-correlation as an estimate of Rxy(k) = E{x(n+k)*conj(y(n)}
= E{x(n)*conj(y(n-k)}. The
speed of the algorithm has also been vastly improved, especially for
long vectors.
lpc now returns the prediction error variance correctly
The error variance is computed based on the correctly scaled auto-correlation
sequence (the biased estimate).
fircls correctly handles frequency steps bigger than 0.01
The fircls function no longer produces the warning "Empty matrix multiplication
with unequal inner dimensions" when the frequency step is bigger than 0.01.
Made remez more robust
remez no longer generates the warning "Subscript indices must be integer
values".
Improved help for hilbert
Help for hilbert now states that when the input is complex, only the real
part is used. Also, hilbert generates a warning if the input is complex.
Fixed axis labeling in freqz
freqz now labels the x-axis correctly in all cases.
AR spectral estimation methods calculate the one-sided PSD
The power spectral estimation (PSD) functions pburg, pcov, pmcov, and pyulear
now calculate the one-sided PSD.
pmtm now computes one-sided and two-sided PSD
The power spectral estimation (PSD) function pmtm now accepts an optional
string to specify one-sided or two-sided PSD.
Improved handling of input string flag to ss2sos
ss2sos now correctly allows the direction flag string to be specified as
either the 5th or 6th input argument.
tf2latc correctly normalizes transfer function
tf2latc now correctly normalizes the numerator and denominator when the
leading coefficient of the denominator is not equal to one.
Symbolic Toolbox 2.1.2 Bug Fixes
Click on a problem listed below to read how it has been fixed in a previous release.
Improved handling of control-c
SYM is more robust
EQ produces a logical array
SYMVAR produces a column-shaped output
Improved handling of control-c
Pressing cntrl-c to stop execution during a symbolic computation no longer causes
a segmentation violation.
SYM is more robust
SYM is now more robust at parsing its inputs.
In earlier releases, there were cases where SYM would create
invalid matrices that would produce error messages when these matrices were used.
EQ produces a logical array
EQ, the overloaded function used when checking for equality with ==, now
returns a logical array. In earlier releases a non-logical array was returned.
SYMVAR produces a column-shaped output
SYMVAR now always produces a column cell array. In earlier releases, a row was sometimes produced.