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

📄 test_sym.m

📁 几个关于多小波的程序
💻 M
字号:
% TEST_SYM -- test the subroutines in the @sym directory

% Copyright (c) 2004 by Fritz Keinert (keinert@iastate.edu),
% Dept. of Mathematics, Iowa State University, Ames, IA 50011.
% This software may be freely used and distributed for non-commercial
% purposes, provided this copyright statement is preserved, and
% appropriate credit for its use is given.
%
% Last update: Feb 20, 2004

disp('testing routines in mw/@sym');
disp(' ');

I = sym(eye(2));
Z = sym(zeros(2));
ZZ = sym(zeros(2,2,2));

syms s11 s12 s21 s22
S2= [s11,s12;s21,s22];
syms s111 s121 s211 s221 s112 s122 s212 s222
S3 = [s111,s121;s211,s221];
S3(:,:,2) = [s112,s122;s212,s222];
syms s1111 s1211 s2111 s2211 s1121 s1221 s2121 s2221
syms s1112 s1212 s2112 s2212 s1122 s1222 s2122 s2222
S4 = reshape([s1111 s1211 s2111 s2211 s1121 s1221 s2121 s2221,...
	      s1112 s1212 s2112 s2212 s1122 s1222 s2122 s2222], 2,2,2,2);
N = sym([1,pi,sqrt(2),1]);
N = reshape(N,1,2,2);
M = sym([pi,1,1,sqrt(2)]);
M = reshape(M,1,2,2);
DN = reshape(double(N(:)),size(N));
DM = reshape(double(M(:)),size(M));


% test isidentity
if (isidentity(I) & ~isidentity(Z) & ~isidentity(S4))
    disp('OK - isidentity');
else
    error('failed: isidentity');
end

% test issingular
if (~issingular(I) & issingular(Z) & issingular(S4))
    disp('OK - issingular');
else
    error('failed: issingular');
end

% test issymbolic
if (~issymbolic(I) & ~issymbolic(Z) & issymbolic(S4))
    disp('OK - issymbolic');
else
    error('failed: issymbolic');
end

% test iszero
if (~iszero(I) & iszero(Z) & iszero(ZZ) & ~iszero(S4))
    disp('OK - iszero');
else
    error('failed: iszero');
end

% test max

[maxN,ImaxN] = max(N);
[maxDN,ImaxDN] = max(DN);
if (iszero(maxN(:) - maxDN(:)) & iszero(ImaxN(:) - ImaxDN(:)))
    disp('OK - max(S)')
else
    error('failed: max(S)');
end

[maxN,ImaxN] = max(N,[],1);
[maxDN,ImaxDN] = max(DN,[],1);
if (iszero(maxN(:) - maxDN(:)) & iszero(ImaxN(:) - ImaxDN(:)))
    disp('OK - max(S,[],1)')
else
    error('failed: max(S),[],1)');
end

[maxN,ImaxN] = max(N,[],2);
[maxDN,ImaxDN] = max(DN,[],2);
if (iszero(maxN(:) - maxDN(:)) & iszero(ImaxN(:) - ImaxDN(:)))
    disp('OK - max(S,[],2)')
else
    error('failed: max(S),[],2)');
end

[maxN,ImaxN] = max(N,[],3);
[maxDN,ImaxDN] = max(DN,[],3);
if (iszero(maxN(:) - maxDN(:)) & iszero(ImaxN(:) - ImaxDN(:)))
    disp('OK - max(S,[],3)')
else
    error('failed: max(S),[],3)');
end

maxMN = max(M,N);
maxDMDN = max(DM,DN);
if iszero(maxN(:) - maxDN(:))
    disp('OK - max(S,T)')
else
    error('failed: max(S),T');
end

% test min
[minN,IminN] = min(N);
[minDN,IminDN] = min(DN);
if iszero(minN(:) - minDN(:))
    disp('OK - min(S)')
else
    error('failed: min(S)');
end

[minN,IminN] = min(N,[],1);
[minDN,IminDN] = min(DN,[],1);
if (iszero(minN(:) - minDN(:)) & iszero(IminN(:) - IminDN(:)))
    disp('OK - min(S,[],1)')
else
    error('failed: min(S),[],1)');
end

[minN,IminN] = min(N,[],2);
[minDN,IminDN] = min(DN,[],2);
if (iszero(minN(:) - minDN(:)) & iszero(IminN(:) - IminDN(:)))
    disp('OK - min(S,[],2)')
else
    error('failed: min(S),[],2)');
end

[minN,IminN] = min(N,[],3);
[minDN,IminDN] = min(DN,[],3);
if (iszero(minN(:) - minDN(:)) & iszero(IminN(:) - IminDN(:)))
    disp('OK - min(S,[],3)')
else
    error('failed: min(S),[],3)');
end

minMN = min(M,N);
minDMDN = min(DM,DN);
if iszero(minN(:) - minDN(:))
    disp('OK - min(S,T)')
else
    error('failed: min(S),T');
end

% test norm

N = reshape(N,2,2);
DN = double(N);
v = N(1,:);
dv = double(v);

normv = norm(v,1);
normdv = norm(dv,1);
if (iszero(normv - normdv))
    disp('OK - vector norm(s,1)')
else
    error('failed: vector norm(s,1)');
end

normv = norm(v,2);
normdv = norm(dv,2);
if (iszero(normv - normdv))
    disp('OK - vector norm(s,2)')
else
    error('failed: vector norm(s,2)');
end

normv = norm(v,inf);
normdv = norm(dv,inf);
if (iszero(normv - normdv))
    disp('OK - vector norm(s,inf)')
else
    error('failed: vector norm(s,inf)');
end

normv = norm(v,'inf');
normdv = norm(dv,'inf');
if (iszero(normv - normdv))
    disp('OK - vector norm(s,''inf'')')
else
    error('failed: vector norm(s,''inf'')');
end

normv = norm(v,-inf);
normdv = norm(dv,-inf);
if (iszero(normv - normdv))
    disp('OK - vector norm(s,-inf)')
else
    error('failed: vector norm(s,-inf)');
end

normv = norm(v);
normdv = norm(dv);
if (iszero(normv - normdv))
    disp('OK - vector norm(s)')
else
    error('failed: vector norm(s)');
end

normN = norm(N,1);
normDN = norm(DN,1);
if (iszero(normN - normDN))
    disp('OK - matrix norm(S,1)')
else
    error('failed: matrix norm(S,1)');
end

normN = norm(N,2);
normDN = norm(DN,2);
if (iszero(normN - normDN))
    disp('OK - matrix norm(S,2)')
else
    error('failed: matrix norm(S,2)');
end

normN = norm(N,inf);
normDN = norm(DN,1);
if (iszero(normN - normDN))
    disp('OK - matrix norm(S,inf)')
else
    error('failed: matrix norm(S,inf)');
end

normN = norm(N,'fro');
normDN = norm(DN,'fro');
if (iszero(normN - normDN))
    disp('OK - matrix norm(S,''fro'')')
else
    error('failed: matrix norm(S,''fro'')');
end

normN = norm(N);
normDN = norm(DN);
if (iszero(normN - normDN))
    disp('OK - matrix norm(S)')
else
    error('failed: matrix norm(S)');
end

% test display
S2
S3
S4

⌨️ 快捷键说明

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