2016-01-23 77 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 +版本中工作。

相關問題