3

forループを使用して、いくつかの行列をいくつかの変数に割り当てようとしていました。しかし、私はそれに気付くことができませんでした。おそらくどこが間違っているかはわかるが、それを克服する方法があるかどうかはわからない


N = 10;

for i = 1:1:N

    P(i) = [x(i)^2   x(i)*y(i);  
        x(i)*y(i)   y(i)^2];
end 

K = blkdiag(P);

行列を P(i) に割り当て、それらの P(i) を使用してブロック対角行列を作成します。しかし、私はこれを行うことができないようです。このようなブロック対角行列を作成する他の方法はありますか?

4

1 に答える 1

5

これにはセル配列を使用できます。

for i = 1:10
    P{i} = [x(i)^2   x(i)*y(i);  
            x(i)*y(i)   y(i)^2];
end
K = blkdiag(P{:});
于 2012-09-26T02:56:25.690 に答える