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?

3 views (last 30 days)
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]

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This has been verified as a bug in the Signal Processing Toolbox 6.1 (R13SP1) in the way that BUFFER handles cell arrays.
As a workaround, use CELL2MAT to convert your n-by-1 cell array into a n-by-1 column vector.
a = {1;2;3;4;5;6;7};
b = cell2mat(a);
c = buffer(b,2)

More Answers (0)

Products


Release

R13SP1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!