1

私はベクトルを持っています

output = PV_out(:);

これをある種の形式に分解しようとしています - output(K) ここで、output(1) は最初の 8760 行、output (2) は次の 8760 行などです。

上記のベクトルは 236520x1 ベクトルなので、27 個の「セット」のマトリックスを取得しようとしていますが、これを行う方法を知っている人はいますか?

ありがとうございました

4

2 に答える 2

4

これはreshapeのジョブです:

%# old_output is 236520x1
%# desired is 8760 x 1 x 27 matrix 
new_output = reshape(old_output,8760,1,[]);
size(new_output) %# [8760 1 27]
   ans = [8760 1 27]

これにより、8760x1x27 の行列が作成され、各行は、指定されたベクトルから順番に取得されます。最初の入力引数として ( vectorではなく)行列を指定する場合は注意が必要です。値が取得される順序を確認する必要があります。(空のままにしておくと、その次元に適したサイズが自動的に選択されます。入力の が指定した次元で割り切れない場合でも、エラーが発生します。)[]numel

編集:以下のコメントに従って寸法を変更しました。

于 2012-06-21T00:26:35.677 に答える
1

長さ = 8760;

アウト = ゼロ (len,27);

for i=1:27 out(:,i) = output((i-1)*len + 1 : i*len); 終わり

于 2012-06-21T00:12:36.960 に答える