首页 > 解决方案 > 包装 plot() 函数以使用 varargin

问题描述

我有几个 Nx2 大小的数据集。比如说,它被称为 dat1。我想制作一个包装函数myplot()来使用函数绘制它,而不是每次都plot()这样做。plot(dat1(:,1), dat1(:,2))

这不是问题,但我希望能够以'LineWidth'plot().

如何制作一个myPlot()可以解释类似于的变量参数的包装器plot()?它应该如下所示:

myPlot(dat1, 'rx')应该翻译成plot(dat1(:,1), data1(:,2),'rx')

myPlot(data1, 'Linewidth',2)应该翻译成plot(dat1(:,1), data1(:,2),'Linewidth',2)

编辑:谢谢。在别处找到答案

function h = myPlot(varargin)
  dat = varargin{1};
  h = plot(dat(:,1), dat(:,2), varargin{2:end});

标签: matlab

解决方案


怎么样

myPlot = @(data, varargin) plot(data(:,1), data(:,2), varargin{:})

根据@MichaelTr7的回答,这将创建一个匿名函数,但通过接受varargin,然后在对plot. (这是将额外参数不变地传递给另一个函数的标准技术)。


推荐阅读