1

プロジェクトのテスト ファイルを作成しようとしていますが、通常の ECG のサンプル ファイルから徐脈テスト ファイルを作成することを考えました。

したがって、3 行ごとにコピーして次の行に挿入する必要があります。

例えば:

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(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 に答える