图形化仿真matlab元胞自动机
Graphical simulation matlab cellular automata
我想实现视频中显示的那种图形模拟
https://www.youtube.com/watch?v=pi256PoyNsg。我已经看到,通过将函数 imshow() 正确放置在循环中,您可以制作这种类型的两种颜色的动画。但是,我希望能够添加更多颜色。我有哪些选择?
这是我使用 imshow() 制作二进制动画的示例。矩阵 A 的每一步都是随机初始化的。
N=100; %Size of matrix
A=rand(N,N); %Matrix with random values between 0 and 1
imshow(A) %Print image
for j=1:1000
A=rand(N,N); % A is rewritten
imshow(A) % Reprint matrix
pause(0.005) % Wait
end
这里我使用大小为 Mx3
的预定义 RGB 调色板,其中 M
是您要绘制的颜色总数。
imshow()
支持将 RGB 图像输入为 NxNx3
矩阵。
示例代码:
clear;clc;close all
% C is a M-by-3 matrix representing M RGB colors.
C = [1 1 0;1 0 1;0 1 1];
M = size(C,1);
N=100; %Size of matrix
A=rand(N,N); %Matrix with random values between 0 and 1
imshow(A) %Print image
B = zeros(N,N,3);
for j=1:10
A=randi(M,N,N); % A is rewritten
B(:,:,1) = arrayfun(@(ind) C(ind,1), A);
B(:,:,2) = arrayfun(@(ind) C(ind,2), A);
B(:,:,3) = arrayfun(@(ind) C(ind,3), A);
imshow(B) % Reprint matrix
pause(0.005) % Wait
end
我想实现视频中显示的那种图形模拟 https://www.youtube.com/watch?v=pi256PoyNsg。我已经看到,通过将函数 imshow() 正确放置在循环中,您可以制作这种类型的两种颜色的动画。但是,我希望能够添加更多颜色。我有哪些选择?
这是我使用 imshow() 制作二进制动画的示例。矩阵 A 的每一步都是随机初始化的。
N=100; %Size of matrix
A=rand(N,N); %Matrix with random values between 0 and 1
imshow(A) %Print image
for j=1:1000
A=rand(N,N); % A is rewritten
imshow(A) % Reprint matrix
pause(0.005) % Wait
end
这里我使用大小为 Mx3
的预定义 RGB 调色板,其中 M
是您要绘制的颜色总数。
imshow()
支持将 RGB 图像输入为 NxNx3
矩阵。
示例代码:
clear;clc;close all
% C is a M-by-3 matrix representing M RGB colors.
C = [1 1 0;1 0 1;0 1 1];
M = size(C,1);
N=100; %Size of matrix
A=rand(N,N); %Matrix with random values between 0 and 1
imshow(A) %Print image
B = zeros(N,N,3);
for j=1:10
A=randi(M,N,N); % A is rewritten
B(:,:,1) = arrayfun(@(ind) C(ind,1), A);
B(:,:,2) = arrayfun(@(ind) C(ind,2), A);
B(:,:,3) = arrayfun(@(ind) C(ind,3), A);
imshow(B) % Reprint matrix
pause(0.005) % Wait
end