罗兰在MATLAB的艺术

把想法变成MATLAB

MATLAB R2014b图形-第2部分:使用图形对象

今天,大卫·加里森我们的客人博客,将继续在R2014b系列新的图形系统。

  • 第1部分:特征的新的图形系统
  • 第2部分:使用图形对象
  • 第3部分:在新的图形系统兼容性的考虑

这是本系列的第2部分。

内容

到目前为止,我们已经学到了什么?

第1部分本系列中,我提供了一个介绍新的R2014b MATLAB图形系统。我描述的新特性和提到R2014b——的一大变化MATLAB图形函数返回对象,而不是数字处理

MATLAB的图形系统

当我使用MATLAB,我通常不考虑内部图形系统。通常,我只是想看到一些数据。我可能会调用一个MATLAB绘制函数,等等情节酒吧我了解一些重要的数据。我也使用函数创建用户界面uicontroluipanel。这些功能是MATLAB图形系统的一部分。

假设我创建一个情节和我想要的情节是红色。我可以用两种方式。我可以叫情节函数与一些额外的参数。

x = 0:0.1:10;y = sin (x);情节(x, y,“颜色”,“红色”)

我还可以使用的输出参数情节命令来修改我的阴谋之后,我已经创建了它。这里我首先创建的情节,然后使用命令来改变线的颜色。

p =情节(x, y);集(p,“颜色”,“红色”)

Pre-R2014b数字处理

R2014b之前,调用图形函数将返回这样的数量

p =情节(x, y)
p = 174.346

变量的值p是一种特殊的号码吗处理。处理图形对象的引用。用户可用对象本身不但是你可以使用这个句柄来检索或改变对象的属性使用得到命令。在上面的示例中,我们使用了处理的对象设置它的颜色。事实上,当这种能力首先开始在MATLAB,可用这种方法非常新的和有用的它是一个特殊的名字——处理图形

所有图形处理只是数值。这些值是整数数据和其他所有的分数值。您可以使用处理任何你可以用一个数字。我看过MATLAB代码人们处理和其他数据存储在两个数组或预计处理函数中使用数字作为参数(如数学函数)。

正如你可能知道的,图形对象被存储为一个树结构与父母和孩子。有一个特殊的对象称为顶部的树图形根。R2014b之前,句柄图形根总是0。例如所有开放数据的列表,你可以类型:

myFigures = get (0,“孩子”);

R2014b图形对象

在R2014b图形函数不返回数值处理。他们现在返回MATLAB对象。现在,当你调用一个图形函数和一个输出参数,你看是这样的:

p =情节(x, y)
p =与属性:颜色:0.4470 - 0.7410[0]线型:”——“线宽:0.5000标记:“没有一个”MarkerSize: 6 MarkerFaceColor:‘没有’XData: [1 x101双]YData: [1 x101双]ZData: [1 x0双]使用显示所有属性

情节现在函数返回一个对象。这条线对象的属性。当MATLAB显示对象在命令行窗口中,它显示了最常见的对象的属性。的所有属性文本是一个超链接,您可以单击查看对象的所有属性。

如果你使用函数来看到更多的信息p,你看是这样的:

p
名字大小字节p 1 x1 112 matlab.graphics.chart.primitive.Line类属性

如果是输出显示什么样的对象。你在这里看到的是完整的对象的类名。不要过于担心的细节类名。你永远不需要使用它。

在R2014b,使用大的函数是指图形根。

大的
ans =图形与属性:根CurrentFigure: [1 x1图]ScreenPixelsPerInch: 96拉:[1 1 1920 1200]MonitorPositions:[1 1 1920 1200]单位:像素使用能显示所有属性

获取和设置对象属性

图形对象的好处之一是,您现在可以获取和设置值使用点符号。点符号的形式object.Property。相同的语法,你使用当你想引用字段的结构。例如,在R2014b,你可以得到上面的线的颜色是这样的:

p.Color
ans = 0 0.4470 - 0.7410

类似地,您可以设置线宽线使用点符号。

p.LineWidth= 2;

点符号也很有用,如果你想设置属性的两个对象是一样的。R2014b之前,你可能会写这样的代码:

集(p2,“颜色”得到(p1,“颜色”))

使用点符号,你可以做同样的事情

p2。颜色= p1.Color;

与点符号还可以使用选项卡完成当你试图访问一个图形对象属性。

你仍然可以使用得到功能但我发现点符号一个更方便的方式来引用对象属性。然而,一个警告。当你使用点符号必须使用正确的大小写的属性名。例如,

p.LineWidth

将返回的值线宽但

p.linewidth

将会导致一个错误。

使用得到

正如我上面提到的,你仍然可以使用得到功能和情况得到是有用的。

您可以使用得到命令,如果你想知道所有图形对象的属性。这是相同的属性列表你看看你点击所有属性在上面的示例的链接。

得到(p)
AlignVertexCenters:‘离开’注释:[1 x1 matlab.graphics.eventdata。注释]BeingDeleted:‘off’BusyAction:“队列”ButtonDownFcn:“孩子:[]剪裁:““色:0.4470 - 0.7410 [0]CreateFcn:“DeleteFcn:“DisplayName:”HandleVisibility:”“HitTest:”“可中断:'的线型:”——“线宽:2标记:“没有一个”MarkerEdgeColor:“汽车”MarkerFaceColor:‘没有’MarkerSize: 6父:[1 x1轴]PickableParts:“可见”选择:“关闭”SelectionHighlight:”的标签:“类型:“行”UIContextMenu:[]用户数据:[]可见:在“XData: [1 x101双]XDataMode:“手动”XDataSource:“YData: [1 x101双]YDataSource:“ZData: [1 x0双]ZDataSource:“

函数是非常有用的,如果你想知道什么选项可用对于一个给定的属性。在这种情况下,您可以调用属性的属性名,但没有价值。

集(p,“线型”)
',' ',' ':' ' -。' '没有'

的另一个用途当你需要从一个图形对象数组引用属性。假设您有一个数组对象创建的情节命令:

x = 0:0.1:10;日元= sin (x);y2 = cos (x);lineArray =情节(x, y₁, x, y2)
lineArray = 2 x1线阵列:行了行了

您可以使用函数来改变颜色的所有行数组中的一个命令。

集(lineArray,“颜色”,“蓝”)

你开始使用图形对象在R2014b吗?

你怎么看待这种变化在R2014b图形对象?你有试过使用点符号用于获取和设置图形对象属性?

接下来——第3部分:兼容性考虑新的图形系统中

R2014b还有一些其他的变化会影响一些现有的MATLAB代码。这些变化主要影响高级图形用户和人建立更复杂的用户界面。下一次,我将描述重要的变化,你应该采取什么措施使您的代码与R2014b兼容。我也会给你一些指导如何编写代码在多个版本。

发表与MATLAB®R2014b

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。