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

📄 coordinate.m

📁 利用matlab的基本方法
💻 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 + -