Semi-repeatable Cellfun Error

1 次查看(过去 30 天)
I'm quite thrown by this problem: I have a line which crops up in a few functions within a program, which uses cellfun to convert some numeric positive/ negative data into strings formatted for currency:
MoneyDisp(:,3) = cellfun(@(x) sprintf('£%0.2f',abs(x)),MoneyDisp(:,3),'UniformOutput',false);
Where MoneyDisp is a cell array, the third column of which has the numeric data in. For a while now, when I try and run it (on R2010a 64 bit, Windows 7), I get the following error:
??? Undefined function or variable 'create_sfh%1@(x)sprintf('£%0.2f',abs(x))'.
So something strange seems to be happening with the execution of the anonymous function to mash the whole thing into one string? If I use
dbstop if error
to catch the error, I can run that line in the command window and it works without any problems. If I then exit debug mode and run the function again, sometimes the error disappears and everything's fine from then on, other times Matlab crashes owing to a segmentation violation.

采纳的回答

Oleg Komarov
Oleg Komarov 2012-8-2
You can try this solution to format currencies: http://www.mathworks.com/matlabcentral/answers/32171#answer_40659
I suggest to file in a technical support request with TMW.
  1 个评论
Tom
Tom 2012-8-3
Thanks, Oleg. For what it's worth, it seems to be working if I use a standard function instead, e.g.
cellfun(@formatfcn,...)
...
function y formatfcn(x)
y=sprintf('£%0.2f',abs(x))

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by