matlab - 包装 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});
解决方案
怎么样
myPlot = @(data, varargin) plot(data(:,1), data(:,2), varargin{:})
根据@MichaelTr7的回答,这将创建一个匿名函数,但通过接受varargin
,然后在对plot
. (这是将额外参数不变地传递给另一个函数的标准技术)。
推荐阅读
- docker - 如何限制其他容器的执行,直到所有脚本都在 docker-compose 中的 docker 中的 DB 容器上执行
- java - 为什么Java varargs(int ...x,double ...y)中出现此编译错误?
- python - KeyError:'col 名称'
- html - 列中列表中的文本节点不尊重父宽度
- javascript - 并非所有车轮事件都可以在 Chrome (Opera) 中取消
- https - https 和 Service Fabric 的问题
- vba - 将变量中的数据存储到表中的字段中
- c# - 如何通过 C# 代码选择 XtraTab
- sql-server - sql将动态OR添加到where子句
- apache-kafka-streams - KafkaStream 墓碑消息插入方式