2014-06-27 69 views
0

在MATLAB,如果我想繪製的變量V我有密度做Matlab的情節ksdensity沒有先存儲它的論據

[x, y] = ksdensity(V); 
plot (y, x); 

如果我做plot(ksdensity(V)),它只繪製x而不是x Vs的y

是否有更簡單的替代給ksdensity()作爲參數傳遞給plot(),做同樣的工作plot(y, x)

+0

'plot(y,x)'有什麼問題? – Dan

+0

@丹我有多個變量,要繪製在同一個圖中。所以我想要做一些像'plot(density_of_variable_1,'color1');等一下;繪圖(density_of_variable_2,'color2'),..'等等。如果我去繪製(y,x)路線,我需要輸入兩倍的額外變量。 – user13107

回答

2

你可以重構它到,需要一個功能在V和情節y VS x

function h = plot_ksdensity(V, varargin) 
    [x, y] = ksdensity(V); 
    h = plot (y, x, varargin{:}); 
end 

使用varargin意味着您仍然可以訪問顏色等plot選項。 hold on也將繼續工作,因爲這只是調用常規的plot函數。

2

不幸的是沒有。如果不明確指定輸出,則函數將始終返回輸出參數列表中最左邊的一個。要說服自己有關,在MATLAB路徑創建功能ftest()地方:

function [x, y] = ftest() 

      x = 1; 
      y = 2; 

    end 

然後調用它在命令窗口,而無需指定輸出

>> ftest() 

    ans = 

     1