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]
Prashant Kumar answered .
2025-11-20
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.