主题:这个程序怎么修改才能执行
mengyong
[专家分:0] 发布于 2007-10-14 23:38:00
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个回复)
沙发
sagiltarivs [专家分:2610] 发布于 2007-10-15 09:28:00
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
板凳
mengyong [专家分:0] 发布于 2007-10-15 09:48:00
还是不能运行,抱错还是一样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 楼
sagiltarivs [专家分:2610] 发布于 2007-10-15 17:03:00
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 楼
mengyong [专家分:0] 发布于 2007-10-15 23:39:00
就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 楼
mengyong [专家分:0] 发布于 2007-10-15 23:41:00
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 楼
sagiltarivs [专家分:2610] 发布于 2007-10-17 09:27:00
老大你调用函数t是形参啊,需要你在调函数的时候传入
pp=bspline(1,2)
7 楼
sagiltarivs [专家分:2610] 发布于 2007-10-17 09:27:00
不过这样肯定还是不对,不过没语法错误了,你的逻辑我看不懂
8 楼
mengyong [专家分:0] 发布于 2007-10-17 23:28:00
Input argument 't' is undefined.
Error in ==> C:\MATLAB6p5\work\bspline.m
提示错误解释这样的
麻烦你在费费心
9 楼
mengyong [专家分:0] 发布于 2007-10-17 23:31:00
非常感激[em8]
我来回复