我有两列数据。第一列是时间,第二列是时间的函数。然而,一些时间值丢失了,所以函数值。我不知道丢失行的索引(数据量太大)。例如,我有这样的例子:
t x+w
2t 2x+w
3t 3x+w
6t 6x+w
7t 7x+w
但是,它应该是这样的:
t x+w
2t 2x+w
3t 3x+w
4t 4x
5t 5x
6t 6x+w
7t 7x+w
我想扩展时间数组并添加相应的函数值。实际上,f(t)是随机的,但具有线性增长的确定性行为。因此,如果我在数千个值中添加两个值,这并不重要。那么我如何在Matlab中做到这一点呢?
对不起,我的英语不好。我希望我能解释清楚。谢谢。
发布于 2013-04-25 07:33:10
如果您的数据如下所示:
t = [1 2 3 6 7];
x = 2;
w = 10;
X = t*x + w;
现在,您可以只使用interpolate来获取缺少的X值:
ti = 1:7;
Xi = interp1(t, X, ti);
或者如果你说你有这个:
t = [1 2 3 6 7];
X = rand(size(t));
然后填写随机值:
Xi(t) = X; %Space out the origianl random value according to t
Xi(setdiff(1:7,t)) = rand() %Find the missing vlaues using setdiff and replace them with new random values
ti = 1:7;
https://stackoverflow.com/questions/16208751
复制相似问题