二十岁:一次生日,一次比赛,一次影像爆炸
正如我在我的最后发表在MathWorks社区博客上,我们正在庆祝一个重要的里程碑:MATLAB中心已经20岁了!
这是个不错的数字,20。某些数字给人的感觉是友好的,我一直喜欢20。它挂在二进制和十进制的角落里,对每个经过的人愉快地微笑。我们能做些什么来尊重它和MATLAB中心?有哪些因素让《20》如此令人钦佩?我能想到一些。
因素(20)
它的字面因子清楚地表明20是一个所谓的原数。它的形式是n*(n+1)
4 * 5
这就是你的倾向性。我喜欢你把一个关于数字的无趣的事实,给它一个花哨的名字,突然之间它就变得有趣了。抚摸山羊胡子,说:“是的,驼背。是的。”]。
现在,我们能用这些因素做什么呢?
D =除数(20)
和(d)
这很有趣。生命、宇宙和一切的答案可能是42,但问题是什么呢?现在你知道了:“20的除数和是多少?”(对于那些在家跟随的人,请注意:除数来自符号数学工具箱。)
我写了一首赞美20的短诗。是这样的。
二,四,六,八!
我们感激谁?
求和([2 4 6 8])
是的,是我们的朋友20号。我们可以像这样重构我们的代码和诗。
1到4的和的两倍!
我们喜欢的数字是多少?
2 *总和(1:4)
单位= [1 1 1 1]
线性=累积(单位)
三角=累积(线性)
四面体=共(三角形)
二,四,六,八!
我们如何积累?
好吧,我不写诗了。但所有这些积累提醒我,同样的一组数字可以在布莱斯·帕斯卡最喜欢的三角形.就在那里,我们的贵宾安详地坐在右下角,打量着这一切。
帕斯卡(4)
20个字符
这些都是我们可以用20来做的事情。但数论已经够多了!我们能用20个字符的代码做什么?这里有一个漂亮的情节,只用了15个角色。默认的颜色使一个不错的墨西哥毯子效果。叫它小地毯吧。哈。
% 20字符。限制= > |
区(魔法(20))
没有轴看起来更好,但那将使我超过字符限制。
这是为了纪念Cleve Moler, MATLAB之父。看,20个字符揭示了硅藻土矩阵是20阶的。
% 20字符。限制= > |
画廊(“硅藻土”, 20)
我需要另外两行来展示它是什么样的。挺好看的,是吧?但是要小心!它有一个非常小的特征值,很容易打乱原始的消去方法。至少别人是这么告诉我的。
显示亮度图像(ans)
轴广场
20行
我们能用20行代码做什么?这个小的Mandelbrot集合正好合适。这一切甚至不用作弊,把多条语句塞进一行代码。
P = 500;
X0 = -0.6;
R = 1.5;
K = 50;
X = linspace(x0-r, x0+r, p);
Y = linspace(-r, r, p);
[X, Y] =网格(X, Y);
Z = X + 1i*Y;
m = k*ones(size(Z));
z = z;
为N = 0:k
z = z.*z+ z;
H = abs(z)>2;
z(h) = NaN;
M (h) = n;
结束
显示亮度图像(m)
Colormap ([parula(k-1);0 0 0])
轴平等的
轴从
字符竞赛:MATLAB迷你Hack
摆弄数字、代码和图像很有趣,但我的漫步是有目的的。我想介绍一个激动人心的周年庆祝比赛,我们将于下周启动。我们称之为MATLAB小破解.这是一个限制字符数的编码比赛。只要我在押头韵,我可以告诉你,它也是合作的和丰富多彩的。
比赛围绕着这个问题:你能用不超过280个字符的代码在MATLAB中做出什么有趣的图像?我举个例子。上面显示的Mandelbrot代码只有278个字符,符合要求。
我们把迷你Hack称为比赛,但它实际上主要是为了乐趣。考虑到这一点,我们鼓励您不仅贡献您的原始想法,而且还要窃取,或者更确切地说是“混合”他人的代码。以他们的想法为基础,做出更丰富多彩的恶作剧。如果您看到有人重新混合您的代码,请记住:这是一件好事!感到骄傲。
我对这个比赛非常兴奋,我将在本周五(10月1日)东部时间上午10点在Instagram上做一个直播活动,我将谈论MATLAB Central的历史,我们是如何庆祝20周年的,以及关于这个疯狂的、万花筒般的比赛你需要知道的一切。
说到万花筒,我将以280个旋转对称的hgtransform快乐字符结束。
X = linspace(0,4 *pi);
Y = 0.5*x.*sin(x);
h1 = plot(x, y, LineWidth=6);
K = 20;
C = hsv(k);
为N = 1:k
H2 = copyobj(h1, gca);
T = hgtransform;
集(h2,父母= t,颜色= c (n,:))
= n*2* /k;
rot = makegtform (ZRotate=theta);
组(t矩阵=腐烂);
结束
轴平等的
轴从
|
评论
如欲留言,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。