行列を作成したいです。

4 views (last 30 days)
Ken Takahashi
Ken Takahashi on 23 Feb 2023
Commented: Ken Takahashi on 24 Feb 2023
%開始と終了のタイミングは解っている場合に、それを一列に並べた行列が作りたいのですが、うまくできません。
StartTiming = [1 22 45 78 91];
EndTiming = [3 34 72 83 100];
%上記二つの情報から
[ 1 2 3  22 23 24 25 26 27 28 29 30 31 32 33 34 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 78 79 80 81 82 83 91 92 93 94 95 96 97 98 99 100]
%となる様な行列を作成したいと考えています。
%実際は、遥かにデータの量が多いので、StartTimingとEndTimingから何等かの式で作りたいのですが上手く行きません。
% 基本がしっかり解っていれば、簡単に出来るこのなのでしょうが、宜しくお願い致します。

Answers (1)

交感神経優位なあかべぇ
このような方法でどうでしょうか?
StartTiming = [1 22 45 78 91];
EndTiming = [3 34 72 83 100];
tmp = cell(1, length(StartTiming));
for i = 1 : length(tmp)
tmp{i} = StartTiming(i) : EndTiming(i);
end
ans = [tmp{:}]
ans = 1×60
1 2 3 22 23 24 25 26 27 28 29 30 31 32 33 34 45 46 47 48 49 50 51 52 53 54 55 56 57 58
  2 Comments
Akira Agata
Akira Agata on 23 Feb 2023
+1
arrayfun をうまく使って for ループ無しで書くこともできます。
StartTiming = [1 22 45 78 91];
EndTiming = [3 34 72 83 100];
tmp = arrayfun(@(a,b) a:b, StartTiming, EndTiming, 'UniformOutput', false);
Result = [tmp{:}]
Result = 1×60
1 2 3 22 23 24 25 26 27 28 29 30 31 32 33 34 45 46 47 48 49 50 51 52 53 54 55 56 57 58
Ken Takahashi
Ken Takahashi on 24 Feb 2023
 迅速なお答え、誠にありがとうございました。この方法で実行できました。大変助かりました。
 このプログラムは、交感神経と副交感神経のバランスを評価するプログラムに組み込む予定です。
 ありがとうございました。
髙橋 健

Sign in to comment.

Categories

Find more on 行列および配列 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!