Я просто пытаюсь использовать результат одной функции в другой и выполнить простое умножение матриц.Первая функция (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
Это ошибка: