-1
nx1列行列を√nx√n正方行列 に変換したいとします。nx1列行列を√nx√n正方行列に変換する
考えると9x1行列:
A = 10
9
8
7
6
5
4
3
2
として、私は3x3の行列に変換したい:
10 9 8
7 6 5
4 3 2
nx1列行列を√nx√n正方行列 に変換したいとします。nx1列行列を√nx√n正方行列に変換する
考えると9x1行列:
A = 10
9
8
7
6
5
4
3
2
として、私は3x3の行列に変換したい:
10 9 8
7 6 5
4 3 2
これは、次のようreshape
機能を使用して達成することができます。
B = reshape(A, [3 3]).'
別のオプションがあります:
あなたがn
を定義せず、
A(3,3) = 0
を書くことができますので、あなたはすでに、
n
、結果行列、定義されたの大きさを持っている場合は速くなります
a = (1:9).';
n = size(a,1)^0.5;
A(n,n) = 0;
A(:) = a(:);
。
@Sam ''は[転置ではないので]あなたは実際には' 'reshape(A、[3 3])' 'を使います(http://www.mathworks.com/help /matlab/ref/transpose.html#buuhgyz)。 – Suever
@Suever私は 'reshape(A、[3,3]) 'を試みて、その目的を果たしました。私は同じ形の結果を与える 'reshape(A、[3 3]) 'もチェックしました。私はMATLAB2015aを使用しています –
@Sam実際の数値については同じ結果を返しますが、ドットを使う習慣に入るのは良いことです。なぜなら、複素数を持つなら '' 'は実際に複素共役(実際の数字の転置のように見えます)。 – Suever