【问题标题】:Matlab : expandable array, lost dataMatlab:可扩展数组,丢失数据
【发布时间】:2013-04-25 07:24:56
【问题描述】:

我有两列数据。第一列是时间,第二列是时间的函数。但是,一些时间值会丢失,因此函数值也会丢失。不知道丢失行的索引(数据量太大)。例如,我有这个:

 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 中做到这一点呢?

对不起我的英语。我希望我能解释一下自己。 谢谢。

【问题讨论】:

    标签: arrays matlab expandable


    【解决方案1】:

    如果您的数据如下所示:

    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;
    

    【讨论】:

    • 没问题,欢迎来到 SO。如果正确,请点击答案右上角的勾号标记。
    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    相关资源
    最近更新 更多