/ / Prepracovať vektorový stĺpec - matlab, matica, vektor, pretvoriť

Obnoviť vektor stĺpca - matlab, matica, vektor, preformovanie

Dobrý deň, ja pracujem s MATLABom a mám "z" stĺpcový vektor ktorý má rozmer (9680 x 1). Chcem to zmeniť, aby som mal pole "z" rozmeru (44 x 220). Robím nasledovné:

z=reshape(z,44,220);

Taktiež som sa snažil:

z=reshape(z,[44,220]);

Ale výstup nie je správny (aspoň prvý riadok). Vidím to porovnaním výstupnej matice s počiatočným vektorom.

Potrebujem len 220 prvých pozícií stĺpcavektor je dĺžka prvého radu matice, potom ďalších 220 pozícií vektora je druhý riadok matice a tak ďalej až do získania 44 riadkov.

Čo robím zle? Vďaka za vašu pomoc.

odpovede:

6 pre odpoveď č. 1

Matlab ukladá maticové hodnoty do hlavného formátu stĺpca (toto je dôležité počas pretvárania). Vzhľadom k tomu, že chcete riadok, musíte urobiť

z = reshape(z, [220 44]).";

potom transponovať.


2 pre odpoveď č. 2

Ja som použil Andreas H.prístup.

Ako alternatíva existuje „a vec2mat v komunikačnom paneli nástrojov, ktorý to robí, a ak je to potrebné, vyplní aj chýbajúce hodnoty:

>> x = 11:18;
>> vec2mat(x,4) %// no padding needed
ans =
11    12    13    14
15    16    17    18
>> vec2mat(x,5) %// padding needed; with 0 by default
ans =
11    12    13    14    15
16    17    18     0     0
>> vec2mat(x,5,-1) %// padding needed; with specified value
ans =
11    12    13    14    15
16    17    18    -1    -1