matlab - 在 Matlab 中为绘图创建季度日期向量
问题描述
如何将这个(更长的)向量转换为季度值,如 Q1-1991 等,在 Matlab 的图表上很好地绘制?我在这个论坛上搜索/Matlab-help-searched/搜索并没有找到任何东西。
Dates = [19961; 19962; 19963; 19964; 19971; 19972]
解决方案
MATLAB 使用专门为表示日期而设计的数据类型来最好地处理此类问题,datetime
. 从Dates
您想要的向量开始:
Dates
从double
数组转换为datetime
数组。- 设置数组的默认格式以使用您喜欢的季度数字格式
datetime
直接在您希望显示季度的任何图表或其他显示中使用该数组。
您需要进行一些数字操作,以将日期的组成部分转换为表示日期位的实际数量,而不是设计为在以十进制显示时看起来“过时”的数字。
Years = floor(Dates / 10);
Quarters = rem(Dates, 10);
datetime
对象描述了特定日期的日期,所以现在我们知道该季度的任何一天落在该季度都可以。构建它们的最简单方法是使用年、月和日,因此我选择季度中间月份的第一天,以避免季度之间的边界出现任何歧义:
Months = Quarters * 3 - 1;
ProperDates = datetime(Years, Months, 1);
这个新数组有一个Format
属性,用于确定日期如何显示,例如在绘图中的时间:
ProperDates.Format = 'QQQ-yyyy`;
这个数组现在可以作为数据提供给plot
s 和其他将显示日期的地方,它们将自动以“Q1-1991”格式显示。
推荐阅读
- google-cloud-dataflow - Apache Beam 是否所有键都必须放入工作人员的内存中
- three.js - 如何在对象与射线的交点处检索对象的纹理颜色
- nginx - apt更新后Nginx版本降级
- c++ - 对于计数超过限制 C++ 的循环
- javascript - 将异步 axios API 调用的值返回给变量
- javascript - 使用 html 或 React 上传图像时出错
- python - 尝试对输出求和返回 TypeError: 'long' object is not iterable
- regex - 使用负前瞻排除有条件但不超过一定字符数的字符串
- c++ - 为什么我的txt文件打不开?C++
- javascript - 如何使用 Javascript 在移动设备上将 DataURL 下载为 png?