2011-03-24 48 views
4

假設我有四個圖h1-h4,並且想要鏈接所有的x軸。爲此,我可以使用linkaxes([h1 h2 h3 h4], 'x')。但是,在另外我想鏈接h1和h3的y軸(以及h2的h4的)。現在當我使用linkaxes([h1 h3], 'y')時,x軸鏈接丟失。兩個鏈接如何同時實現?如何部分應用鏈接?

回答

3

線73和linkaxes 74:

%# Remove any prior links to input handles 
localRemoveLink(ax) 

我建議你創建一個新的功能,myLinkaxes,通過「另存爲...」,在這裏你註釋掉線7​​4更妙的是,myLinkaxes可能接受一個額外的輸入參數「keep」,它用在第73行和第74行的if子句中,即如果keep爲1,則不會調用localRemoveLink

如果您單獨鏈接x和y軸,但是如果在前後使用'xy'參數,則可能會出現問題。

+0

(它是R2010a中的62-63行) – 2011-03-30 11:26:02

+0

@Tobias Kienzler:感謝您的精確。我檢查了R2011a預發佈。 – Jonas 2011-03-30 11:56:47

2

除了由喬納斯提供的解決方案,我認爲它也值得一提的是低級函數linkprop,它能夠鏈接看似任意的圖形對象屬性。

對於這個特定的問題,所期望的效果可通過下面的命令序列來實現:

linkaxes([h1 h2 h3 h4], 'x'); 
lnkObj = linkprop([h1 h3], 'YLim'); 

對於說明的目的(以及由於linkprop是新的我),這個例子是非常簡單的。請參閱文檔以獲取更多詳細信息和更復雜的示例。

在這裏值得一提的是linkprop返回一個link object,它(根據前面的鏈接)「必須存在於你想要屬性鏈接發生的上下文中」;特別是,如果鏈接對象的所有引用都消失,鏈接就會停​​止,從而導致將鏈接對象分配給上面的變量。此外,爲了改變相關圖形對象如何鏈接的細節(即由給定鏈接對象鏈接哪些對象的屬性),對創建的鏈接對象的引用是必需的;請參閱Updating a Link Object瞭解更多信息(包括專門爲執行此類更新而設計的功能列表)。