2017-03-19 38 views
0

このビデオに表示されているグラフィックシミュレーションの種類を実装します。 https://www.youtube.com/watch?v=pi256PoyNsg imshow()関数をループに適切に配置すると、このタイプの2つの色のアニメーションを作成できます。しかし、私はより多くの色を追加できるようにしたいと思います。私の選択肢は何ですか?グラフィカルシミュレーションmatlabセルオートマトン

これは、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 
+1

あなたの質問は非常に簡単に見えますが、助けるために、我々は行って[MCVE] – Yvon

答えて

1

私はMはあなたが描きたい色の合計数であるサイズMx3の事前定義されたRGBカラーpalatteを使用しています。

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 
+0

@Fisiquinを必要としています。 – Yvon