Matlab绘制ksdensity而不先存储其参数

时间:2014-06-27 08:04:48

标签: matlab plot

在MATLAB中,如果我想绘制变量V的密度,我必须这样做

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

如果我plot(ksdensity(V)),则仅绘制x而不是x Vs y

是否有更简单的替代方法可以将ksdensity()作为plot()的参数并执行与plot(y, x)相同的工作?

2 个答案:

答案 0 :(得分:2)

不幸的是没有。如果您没有明确指定输出,则函数将始终从输出参数列表返回最左边的一个。为了说服自己,在MATLAB路径的某处创建函数ftest()

    function [x, y] = ftest( )

            x = 1;
            y = 2;

    end

然后在命令窗口中调用它而不指定输出

    >> ftest()

    ans =

         1

答案 1 :(得分:2)

您可以将其重构为一个接收V并绘制yx的对象的函数:

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

使用varargin表示您仍然可以访问颜色等plot选项。 hold on仍然有用,因为这只会调用常规的plot函数。