Why does the Signal Processing Toolbox 6.1 (R13SP1) cause

Illustration
Francisco - 2021-03-22T14:57:09+00:00
Question: Why does the Signal Processing Toolbox 6.1 (R13SP1) cause

Why does the  Signal Processing Toolbox 6.1 (R13SP1) cause MATLAB to crash when I use BUFFER with an input that is a cell array? When I run the code:     x = {{4};{3}}; t = buffer(x,8); clear x I get variables created whose values are my crash dump.Also, if I run the following code, x = {7}; t = buffer(x,8); clear x clear t I get the following error message: ------------ Assertion detected at Fri Dec 05 10:28:33 2003 ------------ Assertion failed: hdr->in_use != 0, at line 1218 of file ".\mwmem.c". Attempt to free previously freed memory Configuration: MATLAB Version: 6.5.0.196271 (R13.0.1) Operating System: Microsoft Windows 2000 Window System:Version 5.0 (Build 2195: Service Pack 3) Processor ID: x86 Family 6 Model 7 Stepping 3, GenuineIntel Virtual Machine:Java 1.3.1_01 with Sun Microsystems Inc. Java HotSpot(TM) Client VM (mixed mode) Stack Trace: [0] matlab.exe:_mnSignalHandler(0xffffffff, 0, 0, 1) + 592 bytes [1] matlab.exe:void __cdecl ThrowAssertion(void)(2, 0x7a748bc0, 0x65737341, 0x6f697472) + 162 bytes [2] matlab.exe:void __cdecl MATLABAssertFcn(char const *,char const *,int,char const *)(0x7a741868 ": hdr->in_use != 0,", 0x7a74100c ".\mwmem.c", 1218, 0x7a741938 "Attempt to free previously freed..") + 131 bytes [3] libut.dll:_ut_assertstr(0x7a741868 ": hdr->in_use != 0,", 0x7a74100c ".\mwmem.c", 1218, 0x7a741938 "Attempt to free previously freed..") + 25 bytes [4] libut.dll:_mw_free(0x01add730 "_ioFopenHelpPath", 5, 0x1983acf8 "D:\Applications\bin\win32\matlab..", 0x00dfcd34) + 542 bytes [5] libut.dll:_utFree(0x01add730 "_ioFopenHelpPath", 1, 0x1983acf8 "D:\Applications\bin\win32\matlab..", 0x00dfcd44) + 25 bytes [6] libmx.dll:_mxDestroyArrayContents(0x1983acf8 "D:\Applications\bin\win32\matlab..", 0x019a02b0, 0x00dfcd58, 0x7b111fde) + 209 bytes [snip]  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

This has been verified as a bug in the Signal Processing  Toolbox 6.1 (R13SP1) in the way that BUFFER handles cell arrays.
 

The issue with Signal Processing Toolbox 6.1 (R13SP1) causing MATLAB to crash when using the `BUFFER` function with a cell array input is due to a bug in the way `BUFFER` handles cell arrays cause MATLAB to ...](https://www.mathworks.com/matlabcentral/answers/96747-why-does-the-signal-processing-toolbox-6-1-r13sp1-cause-matlab-to-crash-when-i-use-buffer-with-an). This bug leads to an assertion failure and a crash cause MATLAB to ...](https://www.mathworks.com/matlabcentral/answers/96747-why-does-the-signal-processing-toolbox-6-1-r13sp1-cause-matlab-to-crash-when-i-use-buffer-with-an).

 Workaround

To avoid this issue, you can convert your cell array to a numeric array using the `CELL2MAT` function before passing it to `BUFFER` cause MATLAB to ...](https://www.mathworks.com/matlabcentral/answers/96747-why-does-the-signal-processing-toolbox-6-1-r13sp1-cause-matlab-to-crash-when-i-use-buffer-with-an). Here’s how you can do it:


% Example cell array
a = {1; 2; 3; 4; 5; 6; 7};
% Convert cell array to numeric array
b = cell2mat(a);
% Use BUFFER on the numeric array
c = buffer(b, 2);

By converting the cell array to a numeric array, you can avoid the crash and use the `BUFFER` function as intended.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!