矩阵表示为块 - Maple - 元胞自动机

Matrix represented as blocks - Maple - Cellular automaton

我只有非常基本的 Maple 技能,不确定如何将矩阵以图形方式表示为块,其中矩阵中的 1 对应一个块,0 对应一个空 space。

请查看下面的代码,我在其中添加了一个“1”,即循环中中央列的一个块。我想知道这是否可以用任何方式在枫木中制作动画,“1”作为实心方块。

这是某人使用其他软件实现的结果的图片。 任何帮助将不胜感激,谢谢。

restart;
with(LinearAlgebra):
with(MTM);
with(RandomTools);


M := Matrix([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [1, 1, 1, 1, 1]]);


for a to 4 do if (sum(M, 1))[3] < 5 
then z := max(ListTools[SearchAll](0, M..., 3))); 
M(z, 3) := M(z, 3)+1 
end if; 
print(M):
end do;

我相信 Maple 命令 plots:-sparsematrixplot 将帮助您完成大部分工作。可以使用 plots:-display 命令及其 insequence 选项对一系列此类图进行动画处理。比如10个随机矩阵:

L := NULL;
to 10 do
    L := L, plots:-sparsematrixplot(LinearAlgebra:-RandomMatrix(6, 6, generator = 0 .. 1));
end do;

plots:-display(L, insequence)