爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4397|回复: 2

[程序设计] matlab 出错

[复制链接]
回帖奖励 1 金钱 回复本帖可获得 1 金钱奖励! 每人限 1 次

新浪微博达人勋

发表于 2019-3-24 16:54:30 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
进行lagrange插值时,想用1KM上的3个数据点 插值出0到1KM的数据 ,程序如下:
function y=lagrange(x0,y0,x)
%拉格朗日插值函数
%n 个节点数据以数组 x0, y0 输入(注意 Matlat 的数组下标从1开始),
%m 个插值点以数组 x 输入,输出数组 y 为 m 个插值
n=length(x0);o=length(x);
for i=1:o
z=x(i);
s=0.0;
for k=1:n
      p=1.0;
      for j=1:n
           if j~=k
              p=p*(z-x0(j))/(x0(k)-x0(j));
           end
      end
      s=p*y0(k)+s;
end
y(i)=s;
end


[A,B,C,D,E,F,G] =textread('C:\Users\LENOVO\Desktop\qdata3.txt','%d %f %d %f %f %f %f','headerlines',1);
s=0;
l=0;
H=load('C:\Users\LENOVO\Desktop\qdata4.txt');
[m,a]=size(H);
v=0;
for i=1:H(1)
    if D(i)>=1
    v=v+1;
    if v<=3
    Q(v)=D(i);
    K(v)=E(i);
    end
    end
end
x=0:0.1:1
z=lagrange(Q,K,x);
file1=fopen('C:\Users\LENOVO\Desktop\lagrange.txt','a+');
for x = 0:0.1:1;
    z=lagrange(Q,K,x);
fprintf(file1,'%f\t  %f10.6 \t %f15.10\t  %f15.10\t\r\n',x,z,F(1),G(1));
end
fclose(file1);
s=s+H(1) ;
for i=2:m
    s=s+H(i);
    l=l+H(i-1);
    w=0;
    for j=l+1:s
     if D(j)>=1
    w=w+1;
    if w<=3
    Q(w)=D(i);
    K(w)=E(i);
    end
    end
    end

   x=0:0.1:1
   z=lagrange(Q,K,x);
     file2=fopen('C:\Users\LENOVO\Desktop\lagrange.txt','a+');
     for x = 0:0.1:1;
         z=lagrange(Q,K,x);
       fprintf(file2,'%f\t  %f10.6 \t %f15.10\t  %f15.10\t\r\n',x,z,F(l+1),G(l+1));   
    end
     fclose(file2);
end

然后报错 lagrange(x0, y0, x)   未定义函数或变量 'x0'。这是为什么呀?开始的不就是一个函数嘛怎么会报错呢

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-24 17:58:40 | 显示全部楼层

回帖奖励 +1 金钱

太长不看。不过如果是一个文件的话,function需要放在文件末尾
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-24 21:04:34 | 显示全部楼层

回帖奖励 +1 金钱

脚本和函数分开放到不同的文件中,这应该是个编程的习惯,以后说不定还能用到这个函数呢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表