48 lines
915 B
Matlab
Executable File
48 lines
915 B
Matlab
Executable File
function Z = nonlinearreplace(X,Y,W)
|
|
|
|
% Very slow, but easily coded. Hopefully not used much
|
|
U = sdpvar(length(W),1);
|
|
for kk = 1:length(Y)
|
|
Z = [];
|
|
for ii = 1:size(X,1)
|
|
temp = [];
|
|
for jj = 1:size(X,2);
|
|
|
|
[coeffs,base] = coefficients(X(ii,jj),Y(kk));
|
|
|
|
newp = 0;
|
|
for i = 1:length(base)
|
|
newp = newp + coeffs(i)*U(kk)^degree(base(i));
|
|
end
|
|
|
|
temp = [temp newp];
|
|
end
|
|
Z = [Z;temp];
|
|
end
|
|
X = Z;
|
|
end
|
|
|
|
Y = U;
|
|
for kk = 1:length(Y)
|
|
Z = [];
|
|
for ii = 1:size(X,1)
|
|
temp = [];
|
|
for jj = 1:size(X,2);
|
|
|
|
[coeffs,base] = coefficients(X(ii,jj),Y(kk));
|
|
|
|
newp = 0;
|
|
for i = 1:length(base)
|
|
newp = newp + coeffs(i)*W(kk)^degree(base(i));
|
|
end
|
|
|
|
temp = [temp newp];
|
|
end
|
|
Z = [Z;temp];
|
|
end
|
|
X = Z;
|
|
end
|
|
|
|
|
|
|