在MATLAB中,如果我想绘制变量V
的密度,我必须这样做
[x, y] = ksdensity(V);
plot (y, x);
如果我plot(ksdensity(V))
,则仅绘制x
而不是x
Vs y
。
是否有更简单的替代方法可以将ksdensity()
作为plot()
的参数并执行与plot(y, x)
相同的工作?
答案 0 :(得分:2)
不幸的是没有。如果您没有明确指定输出,则函数将始终从输出参数列表返回最左边的一个。为了说服自己,在MATLAB路径的某处创建函数ftest()
:
function [x, y] = ftest( )
x = 1;
y = 2;
end
然后在命令窗口中调用它而不指定输出
>> ftest()
ans =
1
答案 1 :(得分:2)
您可以将其重构为一个接收V
并绘制y
与x
的对象的函数:
function h = plot_ksdensity(V, varargin)
[x, y] = ksdensity(V);
h = plot (y, x, varargin{:});
end
使用varargin
表示您仍然可以访问颜色等plot
选项。 hold on
仍然有用,因为这只会调用常规的plot
函数。