Matlabwilliam hill官网
直播中

炜烁

8年用户 6经验值
擅长:电源/新能源 RF/无线
私信 关注
[问答]

Matlab中如何将不同的时间的数据进行同时间对比?

例子:假设时间列向量[0.1 0.2 0.3 0.4 0.5]对应的数据是[1 2 3 4 5];而另一个时间列向量[0.05 0.1 0.15 0.2 0.25]对应的数据是[0.1 0.5 0.5 0.8 2]。如何将两个时间列向量对齐,形成一个[0.05 0.1 0.15 0.2 0.25 0.3 0.4 0.5],然后该新的时间列向量对应的数据分别为[NaN 1 NaN 2 NaN 3 4 5]和[0.1 0.5 0.5 0.8 2 NaN NaN NaN]。目的是想在同一个图上画出这两个数据关于时间的变化。

回帖(3)

炜烁

2024-12-24 18:45:36
找到一种方法:不用形成新的矩阵,直接使用plot函数画出来。
plot(time1,data1);
hold on
plot(time2,data2);
举报

炜烁

2024-12-24 18:47:30
找到一种方法:不用形成新的矩阵,而是直接使用plot函数
plot(time1,data1)
hold on
plot(time2,data2)
举报

刘娟

2024-12-25 17:01:07
在Matlab中,您可以使用`interp1`函数将两个时间序列数据对齐到一个共同的时间向量。以下是如何实现的步骤:

1. 首先,创建两个时间向量和对应的数据向量:
```matlab
t1 = [0.1 0.2 0.3 0.4 0.5];
y1 = [1 2 3 4 5];

t2 = [0.05 0.1 0.15 0.2 0.25];
y2 = [0.1 0.5 0.5 0.8 2];
```

2. 创建一个新的时间向量,包含两个时间向量的所有唯一值,并按升序排序:
```matlab
t_common = sort(unique([t1 t2]));
```

3. 使用`interp1`函数将两个时间序列数据插值到共同的时间向量上:
```matlab
y1_interp = interp1(t1, y1, t_common, 'linear', 'extrap');
y2_interp = interp1(t2, y2, t_common, 'linear', 'extrap');
```

4. 将插值后的数据合并成一个矩阵,以便在同一个图上绘制:
```matlab
data = [y1_interp, y2_interp];
```

5. 使用`plot`函数绘制两个数据关于时间的变化:
```matlab
plot(t_common, data);
xlabel('Time');
ylabel('Data');
legend('Data 1', 'Data 2');
```

这样,您就可以在同一个图上绘制两个数据关于时间的变化,并且它们已经对齐到一个共同的时间向量上。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分