1

我正在尝试为该项目制作测试文件,并且我想从正常 ECG 的示例文件中制作心动过缓测试文件。

因此,我需要每隔三行复制一次并将其插入下一行。

例如:

a = [
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10]

而且我要:

b = [
    1
    2
    3
    3
    4
    5
    6
    6
    7
    8
    9
    9
    10]

依此类推...但由于文件长度为 6000 个字符,显然我无法手动复制它。我需要它有 9000 个字符长我试过在网上寻找如何做到这一点,但没有运气。

有什么建议么?

4

4 回答 4

2
b=zeros(floor(4/3*length(a)),1);
b(1:4:end)=a(1:3:end);
b(2:4:end)=a(2:3:end);
b(3:4:end)=a(3:3:end);
b(4:4:end)=a(3:3:end);
于 2013-10-31T03:36:35.447 回答
2

这是第三种更快更简单的方法

b = a(round(1:0.75:numel(a)))
于 2013-10-31T08:02:29.430 回答
2

另一种方式:

b = a(sort([1:numel(a) 3:3:numel(a)]))
于 2013-10-31T07:53:19.797 回答
1

这仅适用length(a)于 的倍数3,但似乎比其他答案更快,至少对于大向量:

b = reshape([reshape(a,3,[]); a(3:3:end).'],[],1);
于 2013-10-31T10:56:44.107 回答