请教:如何判断由矩阵生成的等高线(等频线)哪个部分是直的
现有一个矩阵,然后由此矩阵用contour命令生成等高线,然后需要判断其中哪些线是直的,其中直的部分大概长度是多少,这个有没有好的方法,目前我只能靠看图来判断,太累了。比如下图:
其对应的矩阵数据文件:
上图中,手动判断0.265-0.282间的曲线,是接近圆角正方形的,即有直线部分,这个能否通过程序判断? 建议给齐1F代码, 不然还得花时间试!
还有请检查或说明下1F所给的数据, 怎无法直接load!?
另直线的準则为何?
本帖最后由 TurtleRock 于 2011-3-8 15:37 编辑
回复 3 # ChaChing 的帖子
sorry,昨天上传的数据有误,现在把直接保存的变量文件上传(data.mat),可以直接解压后load了
代码如下,这里没有设定等高线条数,因为这个可以根据情况调整的,也没有使用clabel标注数据:
load('data.mat')
xrange=linspace(-0.5,0.5,size(ff,2));
yrange=linspace(-0.5,0.5,size(ff,1));
=contour(xrange,yrange,ff);
axis equal;
axis([-0.5 0.5 -0.5 0.5]);
至于怎么判断是否直线,正是我想请教的内容
我想是不是可以通过设定一个容差范围,在这个范围内的可视为直线。或通过曲率等来判断?
回复 4 # TurtleRock 的帖子
不同準则就有不同结果!
我想是可以通过设定一个容差范围, 或通过曲率等来判断! 这个问题的难度可能在于你的等值线数据如何提取出来?
建议先参阅contour的代码先把数据提取出来,然后再考虑如何判别的问题
判别只要判别准则选好了应该不会太难,比如你说的曲率等 happy 发表于 2011-3-11 16:45 static/image/common/back.gif
这个问题的难度可能在于你的等值线数据如何提取出来?
建议先参阅contour的代码先把数据提取出来,然后再考 ...
不懂!
数据不是就在data.mat裡, 为何还需先参阅contour的代码先把数据提取出来? 这个问题的确比较难解啊,现在还是直线部分平行于x、y轴的情况,如果直线部分是斜线,就更难解了。
页:
[1]