我想实现此视频中显示的那种图形模拟 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
答案 0 :(得分:1)
这里我使用大小为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