일부 matlab 코드를 파이썬으로 변환하려고 시도하고 matlab의 mkpp 기능을 사용했습니다. scipy를 사용하여 파이썬에서 보간법에 대해 여러 가지를 읽었지만 matlab 코드의 기능을 모방하는 방법을 이해할 수 없습니다. scipy에서 interpolate.PiecewisePolynomial을 사용해 보았습니다.하지만 matlab에서 break와 계수 인 같은 인수를 취하는 것 같습니다. MATLAB이 실제로하고있는 것의 근원이 있습니까? mkpp의 기능을 파이썬에서 어떻게 모방 할 수 있습니까?matlabs mkpp를 파이썬으로 변환
편집 : 그래서 아래의 코멘트에서, 그래 나는
if nargin==2, d = 1; else d = d(:).'; end
dlk=numel(coefs); l=length(breaks)-1; dl=prod(d)*l; k=fix(dlk/dl+100*eps);
if (k<=0)||(dl*k~=dlk)
error(message('MATLAB:mkpp:PPNumberMismatchCoeffs',...
int2str(l),int2str(d),int2str(dlk)))
end
pp.form = 'pp';
pp.breaks = reshape(breaks,1,l+1);
pp.coefs = reshape(coefs,dl,k);
pp.pieces = l;
pp.order = k;
pp.dim = d;
파일의 말씀인가, 나는 PP에 대한 모든 파일을 찾을 수 없습니다, 그래서 쓸모없는 것 같다의 mkpp 파일을보고 노력했다.
Ive는 다음을 통해 읽습니다. Can someone explain the behavior of the functions mkpp and ppval? 그러나 Matlab이 장면 뒤에서하고있는 일은 여전히 설명하지 않습니다. 단지 matlab이 일반 다항식과 다르다는 것을 설명합니다.
내가 알아 내려고 시작하는 문제는 scipy에서 찾은 모든 것이 mkpp와 다른 인수를 취한다는 것입니다. 나는 coefs를 만들고 나누기 위해 파이썬 코드를 작성했지만, scipy 문서 http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.PiecewisePolynomial.html#scipy.interpolate.PiecewisePolynomial은 변수를 같은 방식으로 참조하지 않아서 매우 혼란 스럽습니다. 사용되는 용어에 관심있는 사람들을위한
당신은 MATLAB 명령 창에 귀하의 MATLAB 디렉토리에'mkpp.m' 파일 또는 '편집 mkpp'에 관심이있을 수 있습니다. – marsei
편집 mkpp doesnt 많이 표시 : 만약 nargin == 2, d = 1; else d = d (:). '; 끝 dlk = numel (coefs); l = 길이 (나누기) -1; dl = prod (d) * l; k = 수정 (dlk/dl + 100 * eps); 오류 (메시지 ('MATLAB : mkpp : PPNumberMismatchCoeffs', ... int2str (l), int2str (d), int2str (dlk)) 경우 (k <= 0)) 끝 pp.form = 'pp'; pp.breaks = reshape (중단, 1, l + 1); pp.coefs = reshape (coefs, dl, k); pp.pieces = 1; pp.order = k; pp.dim = d; – user1938107