MATLAB:如何使用plot()w / Matrix输入指定线属性?即情节([x1 x2 x3],[y1 y2 y3])

时间:2016-01-23 04:11:38

标签: matlab matrix plot

在matlab中,您可以使用带有矩阵输入的plot(),这非常快速和方便。但是,当我尝试和规划线条时,我找不到方法。我被困在分解我所拥有的东西然后非常辛苦地为每个部分提供一个规范。

示例:

clear; clc;

x = [1 2 3;
     4 5 6;
     7 8 9];
y = [1 4 7;
     2 5 8;
     3 6 9];

 subplot(2,1,1)
 plot(x,y)

 subplot(2,1,2)
 plot(x(:,1),y(:,1),':.',...
 x(:,2),y(:,2),'--',...
 x(:,3),y(:,3),':.b')

如何在不对子图2进行分解的情况下对子图1进行规范?

1 个答案:

答案 0 :(得分:2)

您可以使用plot返回的行句柄/对象单独设置属性。如果您使用的是Matlab R2014b或更新版本,则会返回一个线对象数组,并且可以使用点符号进行操作:

 h = plot(x,y);
 %
 h(1).LineStyle = ':';
 h(1).Marker    = '.';
 %
 h(2).LineStyle = '--';
 %
 h(3).Color     = 'b';
 h(3).LineStyle = ':';
 h(3).Marker    = '.';

对于返回行句柄数组的旧版本,您可以直接set一次一个值:

h = plot(x,y);
set(h(1),'LineStyle',':','Marker','.');
set(h(2),'LineStyle','--');
set(h(3),'Color','b','LineStyle',':','Marker','.');

或使用名称和值数组一次性

 h = plot(x,y);
names = {'LineStyle','Marker','Color'};
values = {
    ':'  , '.'    , get(h(1),'Color');
    '--' , 'none' , get(h(2),'Color');
    ':'  , '.'    , 'b'
    };
set(h,names,values);

请注意,所有set解决方案也适用于R2014 +版本。