我有一個矩陣A,和矢量x爲以下的(左側)如何在MATLAB中交換矩陣的一組行?
其中S0,H0,...是各塊的行號。我想交換這些塊,使得S0和S1; H0和H1靠近在一起作爲右側。這是我的代碼
S0=3;
H0=2;
N0=2;
S1=4;
H1=5;
N1=4;
Cols=5;
Rows=S0+H0+N0+S1+H1+N1;
A=randi(10,[ Rows Cols]);
x=randi(10,[Rows 1]);
%% Exchange two block
temp=A(S0+H0+1:S0+H0+N0,1:end);
A(S0+H0+1:S0+H0+H1,1:end)=A(S0+H0+N0+S1+1:S0+H0+N0+S1+H1,1:end);
A(S0+H0+N0+S1+1:S0+H0+N0+S1+H1,1:end)=temp;
%% How exchange x
上面的代碼是行不通的。我如何在MATLAB中修復它?預先感謝。
自從我最後訪問SO後已經有一段時間了。我從你身上看到的第一句話是:「一種排列和重塑的方法」。沒有太多變化...:P –
@Divakar。我用給定的條件交換行。你可以使用符號S0。 H0 ...爲您的代碼。和向量x也需要交換 – Jame
@StewieGriffin是的,沒有什麼改變!我被詛咒堅持使用'bsxfun','permute','reshape'三重奏;) – Divakar