2016-12-03 67 views
0

行列の空の配列を作成し、それに同じサイズの行列を埋め込む必要があります。Matlab:行列の空の配列を初期化する

私が説明するために少しのスクリプトを作っています

result = []; 

for i = 0: 4; 
    M = i * ones(5,5); % create matrice 
    result = [result,M]; % this would have to append M to results 
end 

ここでの結果は、サイズ5*25の行列であり、私は行列5*5*4の配列を必要としています。

私が研究されているが、私はこれだけの行を見つけました:result = [result(1),M];

+1

多分、誤字はありますが、 'result = [result、M];'は望ましくありません。しかし、私は次元の面で他の問題があるかもしれないと思う。 – mpaskov

答えて

3

問題は[]が暗黙的に水平に値を連結(二次元)ということです。あなたの場合は第3のディメンションに沿って連結したいので、catを使用することができます。

result = cat(3, result, M); 

しかし、それは実際には、あなたのループ内の値を持つ3次元配列の各「スライス」を埋める zeros

result = zeros(5, 5, 4); 

を使用して、あなたのresult配列を事前に割り当てることだろう行うには良い方法。

for k = 0:4 
    M = k * ones(5,5); 
    result(:,:,k+1) = M; 
end