概述
x=str2num(get(handles.edit1,'string'));
y=str2num(get(handles.edit2,'string'));
axes(handles.axes1)
n=length(x);
%各点依次连线
for h=2:n
plot([x(h-1),x(h)],[y(h-1),y(h)]);
end
%求出最高点
a1=(y(n)-y(1))/(x(n)-x(1));
b1=y(1)-a1*x(1);
y1=a1*x+b1;
for h=1:n
d1(h)=abs(a1*x(h)-y(h)+b1)/sqrt(a1.^2+1);
end
D=max(d1);
for h=1:n
if d1(h)==D
X=h;
end
end
Y=y(X);
%求过最高点与它不相邻的各点连线的曲线
for k=1:n
if k~=X&&k~=X-1&&k~=X+1
a=(Y-y(k))/(x(X)-x(k));
b=Y-a*x(X);
Y1=a*x+b;
%判断各点是否为该直线所包容,是则绘出该包容线
for l=1:n
if Y1(l)>=y(l)
count=1;
continue;
else
count=0;
break;
end
end
if count==1
%求出个测点到该直线的距离
for l=1:n
d(l)=abs(a*x(l)-y(l)+b)/sqrt(a.^2+1);
end
%求出最大距离
D1=max(d);
%求出最大距离点的x值,并赋予m
for l=1:n
if d(l)==D1
m=l;
end
end
%求m点投影到直线Y1=a*x+b上的x坐标,并赋予值q
q=(Y1(m)+x(m)/a)/(a+1/a);
%判断最大距离的点的位置是否在所连直线的两个点之间,即是否符合“高低高”准则
if (q>k&&qX&&q
c=y(m)-a*x(m);
Y2=a*x+c;
plot(x,Y1,'r');
plot(x,Y2,'r');
num=num+1;
j(num)=b-c;
end
end
end
end
l1=min(j);
set(handles.text5,'string',l1);
结尾的一个循环里定义了j,但是最后把j的最小值赋给l1却显示j未定义,报错结果如图
2017-4-29 09:01 上传
最后
以上就是聪明冬瓜为你收集整理的matlab未定义str,已经定义了变量却报错“未定义函数或变量”的全部内容,希望文章能够帮你解决matlab未定义str,已经定义了变量却报错“未定义函数或变量”所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复