Попытка решить простую операцию умножения матриц, но получить единственную ошибку - PullRequest
0 голосов
/ 13 июня 2019

Я просто пытаюсь использовать результат одной функции в другой и выполнить простое умножение матриц.Первая функция (M2N) работает нормально, но вторая функция psht показывает ошибку.Это код:

    M2N.m:
    % 1D PSHT Matlab code
    function M=M2N(n)
    n=2;
    B=4;
    if n==1
    M=eye(2);
    else
    p=2^(n-1)-2; m=2^(2*n-2);
    a=sqrt(3*m/(4*m-B)) ; b=sqrt((m-B)/(4*m-B));
    M=[[1 0 ;0 b] zeros(2,p) [0 0;a 0] zeros(2,p);
    zeros(p,2) eye(p) zeros(p,2) zeros(p,p);
    [0 0 ; 0 a] zeros(2,p) [0 1 ;-b 0] zeros(2,p);
    zeros(p,2) zeros(p,p) zeros(p,2) eye(p)];
    end
    end

    psht.m:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    function Y=psht()
    n=2;
    for i=1:n
    Y=kron(eye(2^(n-i)),M2N(i))* kron(eye(2^(n-i)),kron(hadamard(2),eye(2^(i- 
    1))))*Y;
    end
    end

Это ошибка:

Error is shown here

...