⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vm_4lifting_2.m

📁 MATLAB Code for Optimal Quincunx Filter Bank Design Yi Chen July 17, 2006 This file introduces t
💻 M
字号:
function [A, b] = VM_4lifting_2(Np, Nd, x1, y1, x2, y2, x3, y3, x4, y4, phik, xs, Vr)
% compute the approximated linear system for the desired numbers of
% vanishing moments for the optimization problem L4n
% Np primal and Nd dual vanishing moments
% xi, yi -- size of the ith lifting filter
% Copyright (c) 2006 Yi Chen

[Ny, Nx] = meshgrid(1:y1, 1:x1);
n10 = reshape(Nx+Ny-x1/2-1, [x1*y1,1]);
n11 = reshape(Nx-Ny-x1/2, [x1*y1,1]);

[Ny, Nx] = meshgrid(1:y2, 1:x2);
n20 = reshape(Nx+Ny-x2/2-1, [x2*y2,1]);
n21 = reshape(Nx-Ny-x2/2, [x2*y2,1]);

[Ny, Nx] = meshgrid(1:y3, 1:x3);
n30 = reshape(Nx+Ny-x3/2-1, [x3*y3,1]);
n31 = reshape(Nx-Ny-x3/2, [x3*y3,1]);

[Ny, Nx] = meshgrid(1:y4, 1:x4);
n40 = reshape(Nx+Ny-x4/2-1, [x4*y4,1]);
n41 = reshape(Nx-Ny-x4/2, [x4*y4,1]);

i1 = ones(x1*y1,1);
i2 = ones(x2*y2,1);
i3 = ones(x3*y3,1);
i4 = ones(x4*y4,1);

I1 = [eye(x1*y1) zeros(x1*y1, x2*y2+x3*y3+x4*y4)];
I2 = [zeros(x2*y2, x1*y1) eye(x2*y2) zeros(x2*y2, x3*y3+x4*y4)];
I3 = [zeros(x3*y3, x1*y1+x2*y2) eye(x3*y3) zeros(x3*y3, x4*y4)];
I4 = [zeros(x4*y4, x1*y1+x2*y2+x3*y3) eye(x4*y4)];

a1_hat = I1*(xs+Vr*phik);
a2_hat = I2*(xs+Vr*phik);
a3_hat = I3*(xs+Vr*phik);
a4_hat = I4*(xs+Vr*phik);

V1_hat = I1*Vr;
V2_hat = I2*Vr;
V3_hat = I3*Vr;
V4_hat = I4*Vr;

b(1) = 1 + 4*a1_hat'*i1*a2_hat'*i2 + 4*a1_hat'*i1*a4_hat'*i4 + 4*a3_hat'*i3*a4_hat'*i4...
    + 16*a1_hat'*i1*a2_hat'*i2*a3_hat'*i3*a4_hat'*i4 - 2*a2_hat'*i2 - 2*a4_hat'*i4 - 8*a2_hat'*i2*a3_hat'*i3*a4_hat'*i4;
A(1, 1:length(phik)) = 4*a1_hat'*i1*i4'*V4_hat + 4*a4_hat'*i4*i1'*V1_hat + 4*a1_hat'*i1*i2'*V2_hat + 4*a2_hat'*i2*i1'*V1_hat + 4*a3_hat'*i3*i4'*V4_hat + 4*a4_hat'*i4*i3'*V3_hat...
    - 2*i2'*V2_hat - 2*i4'*V4_hat - 8*a4_hat'*i4*a2_hat'*i2*i3'*V3_hat - 8*a4_hat'*i4*a3_hat'*i3*i2'*V2_hat - 8*a2_hat'*i2*a3_hat'*i3*i4'*V4_hat...
    + 16*i1'*a1_hat*i2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
    + 16*i3'*a3_hat*i4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*i2'*a2_hat*i3'*V3_hat;
b(2) = 1 + 4*a2_hat'*i2*a3_hat'*i3 + 2*a1_hat'*i1 + 2*a3_hat'*i3 + 8*a1_hat'*i1*a2_hat'*i2*a3_hat'*i3;
A(2, 1:length(phik)) = 2*i1'*V1_hat + 2*i3'*V3_hat + 8*a1_hat'*i1*a2_hat'*i2*i3'*V3_hat + 8*a1_hat'*i1*a3_hat'*i3*i2'*V2_hat + 8*a2_hat'*i2*a3_hat'*i3*i1'*V1_hat...
    + 4*a2_hat'*i2*i3'*V3_hat + 4*a3_hat'*i3*i2'*V2_hat; 
b = b(:);
    
if Nd == 4
bd(1) = a1_hat'*(n10.*n11.*2.*i1) + a3_hat'*(n30.*n31.*2.*i3)...
    + a2_hat'*((n20.*n21.*2.*i2)*2*i3'+2*i2*(n30.*n31.*2.*i3)')*a3_hat...
    + a1_hat'*(n10.*n11.*2.*i1)*a2_hat'*2*i2*a3_hat'*2*i3...
    + a1_hat'*2*i1*a2_hat'*(n20.*n21.*2.*i2)*a3_hat'*2*i3...
    + a1_hat'*2*i1*a2_hat'*2*i2*a3_hat'*(n30.*n31.*2.*i3);

Ad(1, 1:length(phik)) = (n10.*n11.*2.*i1)'*V1_hat + (n30.*n31.*2.*i3)'*V3_hat...
    + a3_hat'*((n20.*n21.*2.*i2)*2*i3'+2*i2*(n30.*n31.*2.*i3)')'*V2_hat...
    + a2_hat'*((n20.*n21.*2.*i2)*2*i3'+2*i2*(n30.*n31.*2.*i3)')*V3_hat...
    + a1_hat'*(n10.*n11.*2.*i1)*a2_hat'*2*i2*(2*i3)'*V3_hat...
    + a1_hat'*(n10.*n11.*2.*i1)*a3_hat'*2*i3*(2*i2)'*V2_hat...
    + a2_hat'*2*i2*a3_hat'*2*i3*(n10.*n11.*2.*i1)'*V1_hat...
    + a2_hat'*(n20.*n21.*2.*i2)*a3_hat'*2*i3*(2*i1)'*V1_hat...
    + a2_hat'*(n20.*n21.*2.*i2)*a1_hat'*2*i1*(2*i3)'*V3_hat...
    + a1_hat'*2*i1*a3_hat'*2*i3*(n20.*n21.*2.*i2)'*V2_hat...
    + a3_hat'*(n30.*n31.*2.*i3)*a2_hat'*2*i2*(2*i1)'*V1_hat...
    + a3_hat'*(n30.*n31.*2.*i3)*a1_hat'*2*i1*(2*i2)'*V2_hat...
    + a2_hat'*2*i2*a1_hat'*2*i1*(n30.*n31.*2.*i3)'*V3_hat; 

bd(2) = a1_hat'*(n10.*n10.*2.*i1) + a3_hat'*(n30.*n30.*2.*i3)...
    + a2_hat'*((n20.*n20.*2.*i2)*2*i3'+2*i2*(n30.*n30.*2.*i3)')*a3_hat...
    + a1_hat'*(n10.*n10.*2.*i1)*a2_hat'*2*i2*a3_hat'*2*i3...
    + a1_hat'*2*i1*a2_hat'*(n20.*n20.*2.*i2)*a3_hat'*2*i3...
    + a1_hat'*2*i1*a2_hat'*2*i2*a3_hat'*(n30.*n30.*2.*i3);

Ad(2, 1:length(phik)) = (n10.*n10.*2.*i1)'*V1_hat + (n30.*n30.*2.*i3)'*V3_hat...
    + a3_hat'*((n20.*n20.*2.*i2)*2*i3'+2*i2*(n30.*n30.*2.*i3)')'*V2_hat...
    + a2_hat'*((n20.*n20.*2.*i2)*2*i3'+2*i2*(n30.*n30.*2.*i3)')*V3_hat...
    + a1_hat'*(n10.*n10.*2.*i1)*a2_hat'*2*i2*(2*i3)'*V3_hat...
    + a1_hat'*(n10.*n10.*2.*i1)*a3_hat'*2*i3*(2*i2)'*V2_hat...
    + a2_hat'*2*i2*a3_hat'*2*i3*(n10.*n10.*2.*i1)'*V1_hat...
    + a2_hat'*(n20.*n20.*2.*i2)*a3_hat'*2*i3*(2*i1)'*V1_hat...
    + a2_hat'*(n20.*n20.*2.*i2)*a1_hat'*2*i1*(2*i3)'*V3_hat...
    + a1_hat'*2*i1*a3_hat'*2*i3*(n20.*n20.*2.*i2)'*V2_hat...
    + a3_hat'*(n30.*n30.*2.*i3)*a2_hat'*2*i2*(2*i1)'*V1_hat...
    + a3_hat'*(n30.*n30.*2.*i3)*a1_hat'*2*i1*(2*i2)'*V2_hat...
    + a2_hat'*2*i2*a1_hat'*2*i1*(n30.*n30.*2.*i3)'*V3_hat; 

bd(3) = a1_hat'*(n11.*n11.*2.*i1) + a3_hat'*(n31.*n31.*2.*i3)...
    + a2_hat'*((n21.*n21.*2.*i2)*2*i3'+2*i2*(n31.*n31.*2.*i3)')*a3_hat...
    + a1_hat'*(n11.*n11.*2.*i1)*a2_hat'*2*i2*a3_hat'*2*i3...
    + a1_hat'*2*i1*a2_hat'*(n21.*n21.*2.*i2)*a3_hat'*2*i3...
    + a1_hat'*2*i1*a2_hat'*2*i2*a3_hat'*(n31.*n31.*2.*i3);

Ad(3, 1:length(phik)) = (n11.*n11.*2.*i1)'*V1_hat + (n31.*n31.*2.*i3)'*V3_hat...
    + a3_hat'*((n21.*n21.*2.*i2)*2*i3'+2*i2*(n31.*n31.*2.*i3)')'*V2_hat...
    + a2_hat'*((n21.*n21.*2.*i2)*2*i3'+2*i2*(n31.*n31.*2.*i3)')*V3_hat...
    + a1_hat'*(n11.*n11.*2.*i1)*a2_hat'*2*i2*(2*i3)'*V3_hat...
    + a1_hat'*(n11.*n11.*2.*i1)*a3_hat'*2*i3*(2*i2)'*V2_hat...
    + a2_hat'*2*i2*a3_hat'*2*i3*(n11.*n11.*2.*i1)'*V1_hat...
    + a2_hat'*(n21.*n21.*2.*i2)*a3_hat'*2*i3*(2*i1)'*V1_hat...
    + a2_hat'*(n21.*n21.*2.*i2)*a1_hat'*2*i1*(2*i3)'*V3_hat...
    + a1_hat'*2*i1*a3_hat'*2*i3*(n21.*n21.*2.*i2)'*V2_hat...
    + a3_hat'*(n31.*n31.*2.*i3)*a2_hat'*2*i2*(2*i1)'*V1_hat...
    + a3_hat'*(n31.*n31.*2.*i3)*a1_hat'*2*i1*(2*i2)'*V2_hat...
    + a2_hat'*2*i2*a1_hat'*2*i1*(n31.*n31.*2.*i3)'*V3_hat; 
bd = bd(:);
end

if Np == 4
    m10 = n10; m11 = n11; 
    m20 = n20; m21 = n21;
    m30 = n30; m31 = n31;
    m40 = n40; m41 = n41;
    u1 = m10.*m11.*i1; u2 = m20.*m21.*i2; u3 = m30.*m31.*i3; u4 = m40.*m41.*i4; 
    bp(1) = 4*a1_hat'*(u1*i2'+i1*u2')*a2_hat + 4*a3_hat'*(u3*i4'+i3*u4')*a4_hat...
        + 4*a1_hat'*(u1*i4'+i1*u4')*a4_hat - 2*u2'*a2_hat - 2*u4'*a4_hat...
        - 8*(a4_hat'*u4*a2_hat'*i2*a3_hat'*i3 + a4_hat'*i4*a2_hat'*u2*a3_hat'*i3 + a4_hat'*i4*a2_hat'*i2*a3_hat'*u3)...
        + 16*a1_hat'*u1*a2_hat'*i2*a3_hat'*i3*a4_hat'*i4 + 16*a2_hat'*u2*a1_hat'*i1*a3_hat'*i3*a4_hat'*i4...
        + 16*a3_hat'*u3*a2_hat'*i2*a1_hat'*i1*a4_hat'*i4 + 16*a4_hat'*u4*a2_hat'*i2*a3_hat'*i3*a1_hat'*i1; 
    Ap(1, 1:length(phik)) = 4*a1_hat'*(u1*i2'+i1*u2')*V2_hat + 4*a2_hat'*(u2*i1'+i2*u1')*V1_hat...
        + 4*a1_hat'*(u1*i4'+i1*u4')*V4_hat + 4*a4_hat'*(u4*i1'+i4*u1')*V1_hat...
        + 4*a3_hat'*(u3*i4'+i3*u4')*V4_hat + 4*a4_hat'*(u4*i3'+i4*u3')*V3_hat...
        - 2*u2'*V2_hat - 2*u4'*V4_hat...
        - 8*a4_hat'*u4*a2_hat'*i2*i3'*V3_hat - 8*a4_hat'*u4*a3_hat'*i3*i2'*V2_hat - 8*a2_hat'*i2*a3_hat'*i3*u4'*V4_hat...
        - 8*a2_hat'*u2*a3_hat'*i3*i4'*V4_hat - 8*a2_hat'*u2*a4_hat'*i4*i3'*V3_hat - 8*a4_hat'*i4*a3_hat'*i3*u2'*V2_hat...
        - 8*a3_hat'*u3*a2_hat'*i2*i4'*V4_hat - 8*a3_hat'*u3*a4_hat'*i4*i2'*V2_hat - 8*a2_hat'*i2*a4_hat'*i4*u3'*V3_hat...
        + 16*u1'*a1_hat*i2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*i4'*a4_hat*u1'*V1_hat...
        + 16*i3'*a3_hat*i4'*a4_hat*u1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*u1'*a1_hat*i2'*a2_hat*i3'*V3_hat...        
        + 16*i1'*a1_hat*u2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*u2'*a2_hat*i3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
        + 16*i3'*a3_hat*i4'*a4_hat*i1'*a1_hat*u2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*u2'*a2_hat*i3'*V3_hat...        
        + 16*i1'*a1_hat*i2'*a2_hat*u3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*u3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
        + 16*u3'*a3_hat*i4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*i2'*a2_hat*u3'*V3_hat...        
        + 16*i1'*a1_hat*i2'*a2_hat*i3'*a3_hat*u4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*u4'*a4_hat*i1'*V1_hat...
        + 16*i3'*a3_hat*u4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*u4'*a4_hat*i1'*a1_hat*i2'*a2_hat*i3'*V3_hat;  
    
    m10 = n10; m11 = n10; 
    m20 = n20; m21 = n20;
    m30 = n30; m31 = n30;
    m40 = n40; m41 = n40;
    u1 = m10.*m11.*i1; u2 = m20.*m21.*i2; u3 = m30.*m31.*i3; u4 = m40.*m41.*i4; 
    bp(2) = 4*a1_hat'*(u1*i2'+i1*u2')*a2_hat + 4*a3_hat'*(u3*i4'+i3*u4')*a4_hat...
        + 4*a1_hat'*(u1*i4'+i1*u4')*a4_hat - 2*u2'*a2_hat - 2*u4'*a4_hat...
        - 8*(a4_hat'*u4*a2_hat'*i2*a3_hat'*i3 + a4_hat'*i4*a2_hat'*u2*a3_hat'*i3 + a4_hat'*i4*a2_hat'*i2*a3_hat'*u3)...
        + 16*a1_hat'*u1*a2_hat'*i2*a3_hat'*i3*a4_hat'*i4 + 16*a2_hat'*u2*a1_hat'*i1*a3_hat'*i3*a4_hat'*i4...
        + 16*a3_hat'*u3*a2_hat'*i2*a1_hat'*i1*a4_hat'*i4 + 16*a4_hat'*u4*a2_hat'*i2*a3_hat'*i3*a1_hat'*i1; 
    Ap(2, 1:length(phik)) = 4*a1_hat'*(u1*i2'+i1*u2')*V2_hat + 4*a2_hat'*(u2*i1'+i2*u1')*V1_hat...
        + 4*a1_hat'*(u1*i4'+i1*u4')*V4_hat + 4*a4_hat'*(u4*i1'+i4*u1')*V1_hat...
        + 4*a3_hat'*(u3*i4'+i3*u4')*V4_hat + 4*a4_hat'*(u4*i3'+i4*u3')*V3_hat...
        - 2*u2'*V2_hat - 2*u4'*V4_hat...
        - 8*a4_hat'*u4*a2_hat'*i2*i3'*V3_hat - 8*a4_hat'*u4*a3_hat'*i3*i2'*V2_hat - 8*a2_hat'*i2*a3_hat'*i3*u4'*V4_hat...
        - 8*a2_hat'*u2*a3_hat'*i3*i4'*V4_hat - 8*a2_hat'*u2*a4_hat'*i4*i3'*V3_hat - 8*a4_hat'*i4*a3_hat'*i3*u2'*V2_hat...
        - 8*a3_hat'*u3*a2_hat'*i2*i4'*V4_hat - 8*a3_hat'*u3*a4_hat'*i4*i2'*V2_hat - 8*a2_hat'*i2*a4_hat'*i4*u3'*V3_hat...
        + 16*u1'*a1_hat*i2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*i4'*a4_hat*u1'*V1_hat...
        + 16*i3'*a3_hat*i4'*a4_hat*u1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*u1'*a1_hat*i2'*a2_hat*i3'*V3_hat...        
        + 16*i1'*a1_hat*u2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*u2'*a2_hat*i3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
        + 16*i3'*a3_hat*i4'*a4_hat*i1'*a1_hat*u2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*u2'*a2_hat*i3'*V3_hat...        
        + 16*i1'*a1_hat*i2'*a2_hat*u3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*u3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
        + 16*u3'*a3_hat*i4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*i2'*a2_hat*u3'*V3_hat...        
        + 16*i1'*a1_hat*i2'*a2_hat*i3'*a3_hat*u4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*u4'*a4_hat*i1'*V1_hat...
        + 16*i3'*a3_hat*u4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*u4'*a4_hat*i1'*a1_hat*i2'*a2_hat*i3'*V3_hat;
    
    m10 = n11; m11 = n11; 
    m20 = n21; m21 = n21;
    m30 = n31; m31 = n31;
    m40 = n41; m41 = n41;
    u1 = m10.*m11.*i1; u2 = m20.*m21.*i2; u3 = m30.*m31.*i3; u4 = m40.*m41.*i4; 
    bp(3) = 4*a1_hat'*(u1*i2'+i1*u2')*a2_hat + 4*a3_hat'*(u3*i4'+i3*u4')*a4_hat...
        + 4*a1_hat'*(u1*i4'+i1*u4')*a4_hat - 2*u2'*a2_hat - 2*u4'*a4_hat...
        - 8*(a4_hat'*u4*a2_hat'*i2*a3_hat'*i3 + a4_hat'*i4*a2_hat'*u2*a3_hat'*i3 + a4_hat'*i4*a2_hat'*i2*a3_hat'*u3)...
        + 16*a1_hat'*u1*a2_hat'*i2*a3_hat'*i3*a4_hat'*i4 + 16*a2_hat'*u2*a1_hat'*i1*a3_hat'*i3*a4_hat'*i4...
        + 16*a3_hat'*u3*a2_hat'*i2*a1_hat'*i1*a4_hat'*i4 + 16*a4_hat'*u4*a2_hat'*i2*a3_hat'*i3*a1_hat'*i1; 
    Ap(3, 1:length(phik)) = 4*a1_hat'*(u1*i2'+i1*u2')*V2_hat + 4*a2_hat'*(u2*i1'+i2*u1')*V1_hat...
        + 4*a1_hat'*(u1*i4'+i1*u4')*V4_hat + 4*a4_hat'*(u4*i1'+i4*u1')*V1_hat...
        + 4*a3_hat'*(u3*i4'+i3*u4')*V4_hat + 4*a4_hat'*(u4*i3'+i4*u3')*V3_hat...
        - 2*u2'*V2_hat - 2*u4'*V4_hat...
        - 8*a4_hat'*u4*a2_hat'*i2*i3'*V3_hat - 8*a4_hat'*u4*a3_hat'*i3*i2'*V2_hat - 8*a2_hat'*i2*a3_hat'*i3*u4'*V4_hat...
        - 8*a2_hat'*u2*a3_hat'*i3*i4'*V4_hat - 8*a2_hat'*u2*a4_hat'*i4*i3'*V3_hat - 8*a4_hat'*i4*a3_hat'*i3*u2'*V2_hat...
        - 8*a3_hat'*u3*a2_hat'*i2*i4'*V4_hat - 8*a3_hat'*u3*a4_hat'*i4*i2'*V2_hat - 8*a2_hat'*i2*a4_hat'*i4*u3'*V3_hat...
        + 16*u1'*a1_hat*i2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*i4'*a4_hat*u1'*V1_hat...
        + 16*i3'*a3_hat*i4'*a4_hat*u1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*u1'*a1_hat*i2'*a2_hat*i3'*V3_hat...        
        + 16*i1'*a1_hat*u2'*a2_hat*i3'*a3_hat*i4'*V4_hat + 16*u2'*a2_hat*i3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
        + 16*i3'*a3_hat*i4'*a4_hat*i1'*a1_hat*u2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*u2'*a2_hat*i3'*V3_hat...        
        + 16*i1'*a1_hat*i2'*a2_hat*u3'*a3_hat*i4'*V4_hat + 16*i2'*a2_hat*u3'*a3_hat*i4'*a4_hat*i1'*V1_hat...
        + 16*u3'*a3_hat*i4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*i4'*a4_hat*i1'*a1_hat*i2'*a2_hat*u3'*V3_hat...        
        + 16*i1'*a1_hat*i2'*a2_hat*i3'*a3_hat*u4'*V4_hat + 16*i2'*a2_hat*i3'*a3_hat*u4'*a4_hat*i1'*V1_hat...
        + 16*i3'*a3_hat*u4'*a4_hat*i1'*a1_hat*i2'*V2_hat + 16*u4'*a4_hat*i1'*a1_hat*i2'*a2_hat*i3'*V3_hat;
    bp = bp(:);
end

if Np == 2 && Nd == 2
    A = A;
    b = b;
elseif Np == 4 && Nd == 2
    A = [A; Ap]; 
    b = [b; bp];
elseif Np == 2 && Nd == 4
    A = [A; Ad];
    b = [b; bd];
elseif Np == 4 && Nd == 4
    A = [A; Ap; Ad];
    b = [b; bp; bd];
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -