我是靠谱客的博主 聪明冬瓜,最近开发中收集的这篇文章主要介绍matlab未定义str,已经定义了变量却报错“未定义函数或变量”,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

f8dc87632d46cc505c7bc48401944c3b.png

最后

以上就是聪明冬瓜为你收集整理的matlab未定义str,已经定义了变量却报错“未定义函数或变量”的全部内容,希望文章能够帮你解决matlab未定义str,已经定义了变量却报错“未定义函数或变量”所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部