关于matlab代码的问题
[xy]=ginput();holdallplot(x,y,'*')x1=round(x(1,1));y1=round(y(1,1));x2=round(x(2,1));...
[x y]=ginput();
hold all
plot(x,y,'*')
x1=round(x(1,1));
y1=round(y(1,1));
x2=round(x(2,1));
y2=round(y(2,1));
请问hold all 以及plot(x,y,'*')和x1=round(x(1,1));是什么意思?? 展开
hold all
plot(x,y,'*')
x1=round(x(1,1));
y1=round(y(1,1));
x2=round(x(2,1));
y2=round(y(2,1));
请问hold all 以及plot(x,y,'*')和x1=round(x(1,1));是什么意思?? 展开
1个回答
展开全部
1、hold all 和 hold on 类似,其作用是后续的绘图命令不仅保留之前的绘图结果,而且还记住当前使用的线型和颜色,从而新的绘图可以使用不同的颜色或线型以示区别。
后面括号中的这部分说明可以不看,只是我个人分析代码的一点记录。
【hold all 是R14(MATLAB 7.0)引入的绘图选项,在7.0之前的版本不支持;而对于最新的版本而言,hold on 被修改为和 hold all 相同,hold all 会在将来的版本中被删除(不确定具体从哪个版本改变的,从我现在安装的版本看,2012b没改,2014b改了,2015b仍未删除 hold all 的用法,猜测很可能是从2014b改的)。
从实现的机理上说,hold all 就是保证坐标系的 ColorOrder 和LineStyleOrder这两个属性不会被复位至最前面。在早期的版本中,是通过setappdata 函数设置坐标系的 PlotHoldStyle属性,而在新版中,坐标系则新增加了 ColorOrderIndex 和 LineStyleOrderIndex 这两个属性来记录颜色与线型的索引号。】
2、plot(x,y,'*') 非常简单,就是以x为横坐标、y为纵坐标绘图。'*' 用于指定线型、颜色和标记,即点与点之间没有线条、颜色为默认、以星号(*)作为标记。
3、x1=round(x(1,1)); 对数据 x 的第一个点进行舍入运算,结果赋值给变量 x1。
后面括号中的这部分说明可以不看,只是我个人分析代码的一点记录。
【hold all 是R14(MATLAB 7.0)引入的绘图选项,在7.0之前的版本不支持;而对于最新的版本而言,hold on 被修改为和 hold all 相同,hold all 会在将来的版本中被删除(不确定具体从哪个版本改变的,从我现在安装的版本看,2012b没改,2014b改了,2015b仍未删除 hold all 的用法,猜测很可能是从2014b改的)。
从实现的机理上说,hold all 就是保证坐标系的 ColorOrder 和LineStyleOrder这两个属性不会被复位至最前面。在早期的版本中,是通过setappdata 函数设置坐标系的 PlotHoldStyle属性,而在新版中,坐标系则新增加了 ColorOrderIndex 和 LineStyleOrderIndex 这两个属性来记录颜色与线型的索引号。】
2、plot(x,y,'*') 非常简单,就是以x为横坐标、y为纵坐标绘图。'*' 用于指定线型、颜色和标记,即点与点之间没有线条、颜色为默认、以星号(*)作为标记。
3、x1=round(x(1,1)); 对数据 x 的第一个点进行舍入运算,结果赋值给变量 x1。
追问
谢谢,我还想问下x2=round(x(2,1));y2=round(y(2,1));像括号里面的坐标(2,1)等代表的是什么呢?
追答
就是引用矩阵(二维数组)的下标。
只不过,其实x和y都是列向量(也就是N*1的数组),更直接的索引方式用x(2)之类的就行了,如果用双下标,第2个下标肯定都是1。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询