📄 coordinate.m
字号:
function coordinate(varargin)
jj=0;
for ii=1:nargin
if ischar(varargin{ii})
n=str2num(varargin{ii});
else
jj=jj+1;
x(jj)=varargin{ii}(1);
y(jj)=varargin{ii}(2);
end
end
%plot function
m=nargin-1;
if(n>m)
disp('you enter a number out of bound');
end
X=zeros(m,n+1);
for i=1:m
for j=1:(n+1)
X(i,j)=x(i)^(n+1-j);
end
end
a=mutiply(athwart(mutiply(change(X),X)),mutiply(change(X),change(y)));
plot(x,y,'*');
x=min(x):max(x);
Y=zeros(1,max(x)-min(x)+1);
for i = 1:(n+1)
Y=Y+a(i)*x.^(n+1-i);
end
hold on;
plot(x,Y);
function x=athwart(A)
[n m]=size(A);
a=eye(n);
B=[A a];
[p q]=size(B);
for i=1:n
B=taxis(B);
temp=B(i,i);
for j=1:q
B(i,j)=B(i,j)/temp;
end
for k=(i+1) : n
temp=B(k,i);
for ii=1 : q
B(k,ii)=B(k,ii)-B(i,ii)*temp;
end
end
end
for i=n : -1:2
for j=i-1 :-1 : 1
temp=B(j,i);
for k=i:q
B(j,k)=B(j,k)-B(i,k)*temp;
end
end
end
x=zeros(n,n);
for i=1:n
for j=n+1:2*n
x(i,j-n)=B(i,j);
end
end
%排序函数%
function x=taxis(A)
[n,m]=size(A);
zeros_num=zeros(n,1);
for i=1:n
for j=1:m
if(A(i,j)==0)
zeros_num(i,1)=zeros_num(i,1)+1;
else
break;
end
end
end
for i=1:n-1
for j= i+1 : n
if zeros_num(j,1) < zeros_num(i,1)
for ii=1 : m
temp=A(i,ii);
A(i,ii)=A(j,ii);
A(j,ii)=temp;
end
B=zeros_num(i,1);
zeros_num(i,1)=zeros_num(j,1);
zeros_num(j,1)=B;
end
end
end
x=A;
function x=change(A)
[n m]=size(A);
B=zeros(m,n);
for i=1:n
for j=1:m
B(j,i)=A(i,j);
end
end
x=B;
function ans =mutiply(A,B)
a = size(A);
b = size(B);
Result=zeros(size(A,1),size(B,2));
if a(2)==b(1)
for m=1:a(1)
for n=1:b(2)
Result(m,n)=0;
for i=1:size(A,2)
Result(m,n)= Result(m,n)+A(m,i)*B(i,n);
end
end
end
ans=Result;
else
ans='Error!';
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -