2016-01-23 45 views
0

在matlab中,您可以使用plot()和矩阵输入,这非常快速和方便。但是,当我尝试和规范线路时,我找不到方法。我坚持分解我所有的东西,然后为每个部分提供一个规范,而不是很费劲。MATLAB:如何使用plot()w/Matrix输入指定线的属性?即plot([x1 x2 x3],[y1 y2 y3])

例子:

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分解它怎么样?

回答

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 +版本中工作。

相关问题