matlab将x排序 y随之变化,在MATLAB中:XData和YData如何用更改的行数更新?

我正在寻找一种方法来添加动态迁移数据的动态更新图(地点与时间)分隔连续几天的垂直分界线。部分挑战在于,这些分隔线的数量随着绘图域扩展以显示更多时间数据而发生变化:例如,随着绘图中天数从3增加到5,分隔线的数量增加了2个。在MATLAB中:XData和YData如何用更改的行数更新?

的最小代码示例中,写在MATLAB,如下所示:在已经注释掉两条线

xcols = [1; 1];

ycols = [0; 1];

figure(4)

clf

h.divs = plot(xcols,ycols,':k');

xlabel('time')

ylabel('location')

for ii=2:6

xcols(:,end+1) = [ii; ii];

ycols(:,end+1) = [0; 1];

% set(h.divs, 'XData', xcols, 'YData', ycols);

% set(h.divs, {'XData'}, num2cell(xcols',2), {'YData'}, num2cell(ycols',2));

drawnow

pause(1)

end

问题中心。如果我在第一个评论中尝试用每个新的分隔符集(用2 x DividerCount矩阵xcols和ycols给出)来更新XData和YData,那么我会收到一个错误消息,这些输入“必须是一个数值类型的向量”。如果我在第二行中使用单元格数组来解决这个问题(根据this Stack Overflow post和this MATLAB Newsgroup post),那么代码将返回一个错误,即“单元格数组句柄维度必须与句柄向量长度匹配”,只要分隔符的数目变化。

哈克解决方案当然是可能的。例如,可以将分隔线绘制为水平和垂直线段的单线,其中水平线段放置在绘图的y轴限制的上方和下方。或者可以使用固定数量的分隔器,其中一些分隔器绘制在图的x轴限制之外。问题在于是否存在一种非hacky方法 - 可以在循环的每次传递中在同一图中绘制相同样式的潜在变化数量的线条。

+0

欢迎来到StackOverflow。既然你的问题已经被顶线加上一点初始化代码('xcols','ycols',实际情节,可能是'xcols'的更新)所覆盖,我会缩短代码位,以确保只有这些基本的部分。另见[mcve]。 –

+0

感谢您的这个优秀的提示。 (我只在原始问题中包含更多代码,因为我不确定哪些细节可能与常规修复相关。)我简化了我的描述和代码,以便更好地引导您的答案。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值