Olympic puzzle number one

Daniel has provided this nice puzzler:
clear = @()disp('Have fun undoing this (:');
Let's solve this challenge and restore the original clear command in as many ways as you find.

3 个评论

Would somebody please answer this so I can use clear again? aaaah... Thanks Mike!!
Credit should really be given to Loren.
Yes, extra credits for Loren. Extra point for Daniel for the link to Loren's blog!

请先登录,再进行评论。

 采纳的回答

system('matlab &');quit

1 个评论

Jan
Jan 2012-7-31
编辑:Jan 2012-7-31
The rebirth method! +1 from Heidelberg!
On stage deeper: WinPower('rebootmatlab', 'which clear -all') I've always known that this tool will be useful for anything sometimes.

请先登录,再进行评论。

更多回答(4 个)

Mike Hosea
Mike Hosea 2012-7-31
编辑:Mike Hosea 2012-7-31

3 个投票

  1. builtin('clear','clear')
  2. You can delete the variable from the workspace window (highlight and press delete or right click and delete).
I look forward to reading some more creative ways.

2 个评论

Jan
Jan 2012-7-31
编辑:Jan 2012-7-31
First! Thanks for taking the builtin out of the race. The workspace browser is an almost external tool to operate in the workspace. +1
I wonder if the workspace window method method can be accessed by a java method from the commandline.

请先登录,再进行评论。

clear = rand(1000,500,700);
pack

2 个评论

I like this solution.
Relief by much beef. The weight-lifting method.

请先登录,再进行评论。

Missing from the obvious solutions are:
clear = str2func('clear'); clear();
and
feval('clear');

3 个评论

Nice! I would've thought the str2func solution would have recursively called itself.
Jan
Jan 2012-7-31
编辑:Jan 2012-7-31
Re-identification using str2func is fine. I'm surprised that feval does not fail. Most of all: The first approach contains "clear" three times. This is the winner in synchronized swimming.
If you wanted to leave the rest of the workspace undisturbed it would have been four mentions of "clear":
clear = str2func('clear'); clear('clear');

请先登录,再进行评论。

Daniel Shub
Daniel Shub 2012-7-31

1 个投票

Somewhat surprisingly the CLEARVARS function is not a solution and gives an unhelpful error message. I think the failure probably qualifies as a bug.

3 个评论

clearvars is just a fancy wrapper for evalin with clear.
edit clearvars
Disqualified. Who cares, the most important thing is not to win but to take part!
@Sean, my point was that it could be a slightly fancy wrapper that could catch this error

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Just for fun 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by