MATLAB社区

MATLAB,社区等

二十岁:一次生日,一次比赛,一次影像爆炸

正如我在我的最后发表在MathWorks社区博客上,我们正在庆祝一个重要的里程碑:MATLAB中心已经20岁了!
这是个不错的数字,20。某些数字给人的感觉是友好的,我一直喜欢20。它挂在二进制和十进制的角落里,对每个经过的人愉快地微笑。我们能做些什么来尊重它和MATLAB中心?有哪些因素让《20》如此令人钦佩?我能想到一些。
因素(20)
ans = 1×3
2 2 5
它的字面因子清楚地表明20是一个所谓的原数。它的形式是n*(n+1)
4 * 5
Ans = 20
这就是你的倾向性。我喜欢你把一个关于数字的无趣的事实,给它一个花哨的名字,突然之间它就变得有趣了。抚摸山羊胡子,说:“是的,驼背。是的。”]。
现在,我们能用这些因素做什么呢?
D =除数(20)
d = 1×6
1 2 4 5 10 20
和(d)
Ans = 42
这很有趣。生命、宇宙和一切的答案可能是42,但问题是什么呢?现在你知道了:“20的除数和是多少?”(对于那些在家跟随的人,请注意:除数来自符号数学工具箱。)
我写了一首赞美20的短诗。是这样的。
二,四,六,八!
我们感激谁?
求和([2 4 6 8])
Ans = 20
是的,是我们的朋友20号。我们可以像这样重构我们的代码和诗。
1到4的和的两倍!
我们喜欢的数字是多少?
2 *总和(1:4)
Ans = 20
1到n的和是第n个三角形数.我们注意到20是第四个三角数的两倍。20本身是第4个四面体数量.看看这些“形成图案的“数字积累。
单位= [1 1 1 1]
单位= 1×4
1 1 1 1
线性=累积(单位)
线性= 1×4
1 2 3 4
三角=累积(线性)
三角= 1×4
1 3 6 10
四面体=共(三角形)
四面体= 1×4
1 4 10 20
二,四,六,八!
我们如何积累?
好吧,我不写诗了。但所有这些积累提醒我,同样的一组数字可以在布莱斯·帕斯卡最喜欢的三角形.就在那里,我们的贵宾安详地坐在右下角,打量着这一切。
帕斯卡(4)
ans = 4×4
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20

20个字符

这些都是我们可以用20来做的事情。但数论已经够多了!我们能用20个字符的代码做什么?这里有一个漂亮的情节,只用了15个角色。默认的颜色使一个不错的墨西哥毯子效果。叫它小地毯吧。哈。
% 20字符。限制= > |
区(魔法(20))
没有轴看起来更好,但那将使我超过字符限制。
这是为了纪念Cleve Moler, MATLAB之父。看,20个字符揭示了硅藻土矩阵是20阶的。
% 20字符。限制= > |
画廊(“硅藻土”, 20)
ans = 20×20
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 1 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-1 0 1 2 5 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-1 0 1 2 3 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-1 0 1 2 3 4 7 5 5 5 5 5 5 5 5 5 5 5 5
-1 0 1 2 3 4 5 8 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
-1 0 1 2 3 4 5 6 9 7 7 7 7 7 7 7 7
-1 0 1 2 3 4 5 6 7 10 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
我需要另外两行来展示它是什么样的。挺好看的,是吧?但是要小心!它有一个非常小的特征值,很容易打乱原始的消去方法。至少别人是这么告诉我的。
显示亮度图像(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帐户或创建一个新帐户。