首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MATLAB在同一绘图调用中绘制可变数量的信号

MATLAB在同一绘图调用中绘制可变数量的信号
EN

Stack Overflow用户
提问于 2017-12-15 04:24:10
回答 1查看 23关注 0票数 0

除了要绘制的常规数据外,我还尝试绘制一组水平恒定线,它们表示常规数据中的重要阈值。常量的数量是可变的,来自一个数组。

例如,如果在1、2和3处有3个阈值,则数组将是thresholds = 1、2、3。如果在1、4、7和10处有4个阈值,则它将是thresholds =1、4、7、10。

我使用一个特殊的绘图函数(让我们称其为plot_special)来绘制数据。它只需要先取x轴,其余的参数就是要绘制的数据。因此,在一些随机数据具有四个以上阈值的情况下,它将是:

代码语言:javascript
代码运行次数:0
运行
复制
t = time for the data
data1 = some data already created
data2 = some other data already created
thresholds = [1,4,7,10];
f = ones(size(t));
plot_special(t, data1, data2, f*thresholds(1), f*thresholds(2), f*thresholds(3), f*thresholds(4));

问题是阈值可以是可变长度的,所以我非常需要一种方法来迭代阈值,就像我在上面的例子中所做的那样。显然,我需要使用size(阈值),但我不确定如何将其全部包含在函数调用中。

EN

回答 1

Stack Overflow用户

发布于 2017-12-15 04:42:22

有一种更简单的方法:只需将thresholds传递给您的函数:

代码语言:javascript
代码运行次数:0
运行
复制
plot_special(t, data1, data2, thresholds);

在函数内部,您可以绘制阈值,因为您已经有了可用的t。您不需要为每个t绘制阈值,只需要绘制第一个和最后一个值的阈值。您甚至不需要循环来完成此操作,因为y值矩阵将根据与行维度相匹配的x向量按列绘制(感谢@excaza):

代码语言:javascript
代码运行次数:0
运行
复制
x = [t(1); t(end)];
y = repmat(thresholds(:)', [2, 1]);
plot(x, y)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47821472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档