Matlab 不带'的绘图;plot()';功能

Matlab 不带'的绘图;plot()';功能,matlab,plot,Matlab,Plot,我试图学习图形对象在MATLAB中的工作原理。我试图在不使用plot函数的情况下创建一个plot,但我不明白它为什么不起作用 AFIK,当我使用plot函数时,它会创建图形、轴、线对象,然后相应地设置每个对象的属性。我试着这么做,但我得到的只是一个白色/空白的数字 我试图绘制一个正弦波,因此我的X和Y数据是: x = 0:0.1:2*pi; y = sin(x); 这是我的主要代码: figH = figure(); axis([-2, 2, -2, 2]); lineH = findobj(

我试图学习图形对象在MATLAB中的工作原理。我试图在不使用plot函数的情况下创建一个plot,但我不明白它为什么不起作用

AFIK,当我使用plot函数时,它会创建图形、轴、线对象,然后相应地设置每个对象的属性。我试着这么做,但我得到的只是一个白色/空白的数字

我试图绘制一个正弦波,因此我的X和Y数据是:

x = 0:0.1:2*pi;
y = sin(x);
这是我的主要代码:

figH = figure();
axis([-2, 2, -2, 2]);
lineH = findobj(figH, 'type', 'line');
set(lineH, 'XData', x,...
           'YData', y,...
           'Color', 'r');
奇怪的是当我打字的时候

get(lineH) 

我什么也没拿回来。我非常感谢您的提示和评论。

您需要先创建
,然后才能找到它并更改属性。 e、 g

编辑:

直接创建和存储每个对象是一个好主意(而不是允许命令查找适当的图形、轴等…)


我懂了。这就是为什么
get(lineH)
没有返回任何内容。我认为创建一个图形将创建一条线,如果它尚未创建。为什么
findobj(figH,'type,'line')
在没有行时不返回错误?它不是错误,因为它没有找到任何行-它只是返回一个空数组。考虑到你可以在一个图形上(在许多不同的轴上)有很多线条,所以当你创建一个图形时,没有办法创建这个对象。嗯,有道理。因此,我必须先创建一个line对象,然后再使用
line()
设置其属性。我不必创建figure对象,因为
line()
将创建它生存所需的图形。正确-但不是最佳做法-因为它可能最终找到错误的图形-请参见编辑以回答。
hLine = line ( x, y, .... );
% Then you can modify the properties, i.e.
set ( hLine, 'XData', x );  
% etc...
hFig = figure;
hAx = axes ( 'parent', hFig );
hLine = line ( hAx, x, y, .... );