?? test6.m
字號:
clear,close all
A11=[1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1]
A12=[0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 0]
A13=[1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1]
A21=[0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0]
A22=[0 0 0 1 0
0 0 0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0]
A23=[1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1]
Hqc=[A11,A12,A13;A21,A22,A23]
[br,bc]=size(A11)
[cb,tb]=size(Hqc)
D=[A12,A13;A22,A23]
Hqc1=em(Hqc)
D1=em(D)
rd1=rank(D1)
r=rank(Hqc1)
delta_r=rank(Hqc1)-rank(D1)
switch delta_r
case 0
D=[D,eye(cb)]
D=em(D)
D=rrem(D)
invD=D(1:cb,cb+1:2*cb)%求得D的逆陣
M=Hqc(1:cb,1:tb-cb)
TEM=mod(invD*M,2)
I=eye(tb-cb)
Z=mod(TEM*I,2)
P=conj(Z)'
Gqc=[I,P]
otherwise %如果D非滿秩,則將Hqc序列重排
tmp=Hqc(1:cb,tb-delta_r+1:tb)
Hqc(1:cb,1+delta_r:tb)=Hqc(1:cb,1:tb-delta_r)
Hqc(1:cb,1:delta_r)=tmp
per_D=Hqc(1:cb,tb-cb+1:tb)
per_D1=em(per_D)
delta_l=0
%如果D仍然非滿秩,則增加列數
while (r-rank(per_D1))>0
delta_l=delta_l+1
per_D=Hqc(1:cb,tb-cb+1-delta_l*br:tb)
per_D1=em(per_D),end
lb=delta_l*br+cb, %得到新的列數
end
%per_D=[A11,A12,A13;A21,A22,A23]
%per_D1=em(per_D)
%per_D1=rrem(per_D1)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -