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

📄 mpolyval.m

📁 几个关于多小波的程序
💻 M
字号:
function Y = mpolyval(P,X)

% MPOLYVAL - evaluate matrix polynomial
%
%        Y = mpolyval(P,X)
%
% If X is a numerical or symbolic array, evaluate the matrix polynomial P 
% at these values. If either X or P is scalar, Y is returned as a matrix; 
% otherwise, Y is returned as a cell array of matrices.
%
% If X is a matrix polynomial, substitute X into P, and return a matrix polynomial.
% This is the same as writing P(X).

% 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

if ~isnumeric(P)
    X = sym(X);
end
if ~isnumeric(X)
    P = sym(P);
end
if ~isa(X,'mpoly')
% evaluate at points
    n = size(X);
    X = X(:);
    Y = cell(length(X),1);
    for i = 1:length(X)
	Y{i} = mpolyoneval(P,X(i));
    end
    Y = reshape(Y,n);
    if (prod(n) == 1 | prod(size(P)) == 1)
	Y = cell2mat(Y);
    end
else
% substitute matrix polynomial into another
    Y = mpolyoneval(P,X);
end

function val = mpolyoneval(P,x)
% evaluate matrix polynomial at one value by Horner scheme
n = size(P.coef,3);
val = P.coef(:,:,n);
I = eye(size(x));
for j = n-1:-1:1
    val = val * x + P.coef(:,:,j)*I;
end
val = val * x^(P.min);

⌨️ 快捷键说明

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