回 帖 发 新 帖 刷新版面

主题:这个程序怎么修改才能执行

function pp=bspline(t,window)
k=length(t)-1;
if(k>1)
    adds=ones(1,k-1);
    tt=[adds*t(1) t(:)'adds*t(k+1)];j=k+1;
    a=[adds*0 1adds*0];
    inter=find(diff(tt)>0);1=length(inter);
    tx=ones(1,1)*[2-k:k-1]+inter'*ones(1,k);b(:)=a(b);
    c=sprpp(tx,b);x=[tt(inter) tt(2*k)];
else
    1=1;x=t;c=1;
end
if nargout>0,pp=ppmak(x,c,1);return,end
step=100;xx=x(1)+[-10:step+10]*(x(1+1)-x(1))/step;nstep=length(xx);
ifnargout>1subplot(2,2,window),end
xxx=[xx(1) xx(nstep)];yyy=[-1,2];
plot(xxx,yyy,'.b'),axis([xxx,yyy]),grid off,hold on
bspl=spval(spmak(t,1),xx);plot(xx,bspl,'k','linew',2)
for j=1:(k+1),plot(t[j j],yyy),end
temp=find(xx>=x(1));jh=temp(1);
jsmax=5;js=jsmax;co=['r','g','k','m','b'];
forj=1:1;js=js+1;if(js>jsmax),js=1;end
   j1=jh;temp=find(xx>=x(j+1));jh=temp(1);
   pval=polyval(c(j),:),xx-x(j));
   plot(xx,pval,co(js));plot(xx(j1:jh)),bspl(j1:jh),co(js),'linew',1.3)
end
pause
hold off
??? Error: File: C:\MATLAB6p5\work\bspline11.m Line: 5 Column: 24
Missing operator, comma, semicolon, or white space.

回复列表 (共9个回复)

沙发

function pp=bspline(t,window)
k=length(t)-1;
if(k>1)
    adds=ones(1,k-1);
    tt=[adds*t(1) t(:)'adds*t(k+1)];j=k+1;
    a=[adds*0 1adds*0];
    inter=find(diff(tt)>0);1=length(inter);
    tx=ones(1,1)*[2-k:k-1]+inter'*ones(1,k);b(:)=a(b);
    c=sprpp(tx,b);x=[tt(inter) tt(2*k)];
else
    1=1;x=t;c=1;
end
if nargout>0,pp=ppmak(x,c,1);return,end
step=100;xx=x(1)+[-10:step+10]*(x(1+1)-x(1))/step;nstep=length(xx);
ifnargout>1subplot(2,2,window),end
xxx=[xx(1) xx(nstep)];yyy=[-1,2];
plot(xxx,yyy,'.b'),axis([xxx,yyy]),grid off,hold on
bspl=spval(spmak(t,1),xx);plot(xx,bspl,'k','linew',2)
for j=1:(k+1),plot(t[j j],yyy),end
temp=find(xx>=x(1));jh=temp(1);
jsmax=5;js=jsmax;co=['r','g','k','m','b'];
forj=1:1;js=js+1;if(js>jsmax),js=1;end
   j1=jh;temp=find(xx>=x(j+1));jh=temp(1);
   pval=polyval(c((j),:),xx-x(j));             % 这里少个左括号
   plot(xx,pval,co(js));plot(xx(j1:jh)),bspl(j1:jh),co(js),'linew',1.3)
end
pause
hold off 

板凳


还是不能运行,抱错还是一样function pp=bspline(t,window)
k=length(t)-1;
if(k>1)
    adds=ones(1,k-1);
    tt=[adds*t(1) t(:)'adds*t(k+1)];j=k+1;
    a=[adds*0 1adds*0];
    inter=find(diff(tt)>0);1=length(inter);
    tx=ones(1,1)*[2-k:k-1]+inter'*ones(1,k);b(:)=a(b);
    c=sprpp(tx,b);x=[tt(inter) tt(2*k)];
else
    1=1;x=t;c=1;
end
if nargout>0,pp=ppmak(x,c,1);return,end
step=100;xx=x(1)+[-10:step+10]*(x(1+1)-x(1))/step;nstep=length(xx);
ifnargout>1subplot(2,2,window),end
xxx=[xx(1) xx(nstep)];yyy=[-1,2];
plot(xxx,yyy,'.b'),axis([xxx,yyy]),grid off,hold on
bspl=spval(spmak(t,1),xx);plot(xx,bspl,'k','linew',2)
for j=1:(k+1),plot(t[j j],yyy),end
temp=find(xx>=x(1));jh=temp(1);
jsmax=5;js=jsmax;co=['r','g','k','m','b'];
forj=1:1;js=js+1;if(js>jsmax),js=1;end
   j1=jh;temp=find(xx>=x(j+1));jh=temp(1);
   pval=polyval(c((j),:),xx-x(j));             % 这里少个左括号
   plot(xx,pval,co(js));plot(xx(j1:jh)),bspl(j1:jh),co(js),'linew',1.3)
end
pause
hold off 

3 楼

function pp=bspline(t,window)
k=length(t)-1;
if(k>1)
    adds=ones(1,k-1);
    tt=[adds*t(1) t(:)' adds*t(k+1)];
    j=k+1;
    a=[adds*0 1 adds*0];
    inter=find(diff(tt)>0);
    l=length(inter);
    tx=ones(1,1)*[2-k:k-1]+inter'*ones(1,k);b(:)=a(b);
    c=sprpp(tx,b);x=[tt(inter) tt(2*k)];
else
    l=1;
    x=t;
    c=1;
end
if nargout>0,pp=ppmak(x,c,1);return,end
step=100;
xx=x(1)+[-10:step+10]*(x(1+1)-x(1))/step;
nstep=length(xx);
if nargout>1
    subplot(2,2,window);
end
xxx=[xx(1) xx(nstep)];yyy=[-1,2];
plot(xxx,yyy,'.b'),axis([xxx,yyy]),grid off,hold on
bspl=spval(spmak(t,1),xx);plot(xx,bspl,'k','linew',2)
for j=1:(k+1)
    plot(t(j,j), yyy);
end
temp=find(xx>=x(1));jh=temp(1);
jsmax=5;js=jsmax;co=['r','g','k','m','b'];
forj=1:1;js=js+1;if(js>jsmax),js=1;end
   j1=jh;temp=find(xx>=x(j+1));jh=temp(1);
   pval=polyval(c((j),:),xx-x(j));             % 这里少个左括号
   plot(xx,pval,co(js));
   plot(xx(j1:jh),bspl(j1:jh),co(js),'linew',1.3)
end
pause
hold off 
我只能改成这样了
程序中的语法错误不下10处
l和1不分
我不知道你从哪里Copy来的,但是,你自己要认真再改改

4 楼

就i年Input argument 't' is undefined.

Error in ==> C:\MATLAB6p5\work\bspline.m
On line 2  ==> k=length(t)-1;
function pp=bspline(t,window)
k=length(t)-1;
if(k>1)
    adds=ones(1,k-1);
    tt=[adds*t(1) t(:)' adds*t(k+1)];
    j=k+1;
    a=[adds*0 1 adds*0];
    inter=find(diff(tt)>0);
    l=length(inter);
    tx=ones(1,1)*[2-k:k-1]+inter'*ones(1,k);b(:)=a(b);
    c=sprpp(tx,b);x=[tt(inter) tt(2*k)];
else
    l=1;
    x=t;
    c=1;
end
if nargout>0,pp=ppmak(x,c,1);return,end
step=100;
xx=x(1)+[-10:step+10]*(x(1+1)-x(1))/step;
nstep=length(xx);
if nargout>1
    subplot(2,2,window);
end
xxx=[xx(1) xx(nstep)];yyy=[-1,2];
plot(xxx,yyy,'.b'),axis([xxx,yyy]),grid off,hold on
bspl=spval(spmak(t,1),xx);plot(xx,bspl,'k','linew',2)
for j=1:(k+1)
    plot(t(j,j), yyy);
end
temp=find(xx>=x(1));jh=temp(1);
jsmax=5;js=jsmax;co=['r','g','k','m','b'];
forj=1:1;js=js+1;if(js>jsmax),js=1;end
   j1=jh;temp=find(xx>=x(j+1));jh=temp(1);
   pval=polyval(c((j),:),xx-x(j));             % 这里少个左括号
   plot(xx,pval,co(js));
   plot(xx(j1:jh),bspl(j1:jh),co(js),'linew',1.3)
end
pause
hold off 

5 楼


Input argument 't' is undefined.

Error in ==> C:\MATLAB6p5\work\bspline.m
On line 2  ==> k=length(t)-1;
function pp=bspline(t,window)
k=length(t)-1;
if(k>1)
    adds=ones(1,k-1);
    tt=[adds*t(1) t(:)' adds*t(k+1)];
    j=k+1;
    a=[adds*0 1 adds*0];
    inter=find(diff(tt)>0);
    l=length(inter);
    tx=ones(1,1)*[2-k:k-1]+inter'*ones(1,k);b(:)=a(b);
    c=sprpp(tx,b);x=[tt(inter) tt(2*k)];
else
    l=1;
    x=t;
    c=1;
end
if nargout>0,pp=ppmak(x,c,1);return,end
step=100;
xx=x(1)+[-10:step+10]*(x(1+1)-x(1))/step;
nstep=length(xx);
if nargout>1
    subplot(2,2,window);
end
xxx=[xx(1) xx(nstep)];yyy=[-1,2];
plot(xxx,yyy,'.b'),axis([xxx,yyy]),grid off,hold on
bspl=spval(spmak(t,1),xx);plot(xx,bspl,'k','linew',2)
for j=1:(k+1)
    plot(t(j,j), yyy);
end
temp=find(xx>=x(1));jh=temp(1);
jsmax=5;js=jsmax;co=['r','g','k','m','b'];
forj=1:1;js=js+1;if(js>jsmax),js=1;end
   j1=jh;temp=find(xx>=x(j+1));jh=temp(1);
   pval=polyval(c((j),:),xx-x(j));             % 这里少个左括号
   plot(xx,pval,co(js));
   plot(xx(j1:jh),bspl(j1:jh),co(js),'linew',1.3)
end
pause
hold off 

6 楼

老大你调用函数t是形参啊,需要你在调函数的时候传入

pp=bspline(1,2)

7 楼

不过这样肯定还是不对,不过没语法错误了,你的逻辑我看不懂

8 楼


Input argument 't' is undefined.

Error in ==> C:\MATLAB6p5\work\bspline.m
提示错误解释这样的
麻烦你在费费心

9 楼


非常感激[em8]

我来回复

您尚未登录,请登录后再回复。点此登录或注册