行列を作成したいです。

1 次查看(过去 30 天)
Ken Takahashi
Ken Takahashi 2023-2-23
%開始と終了のタイミングは解っている場合に、それを一列に並べた行列が作りたいのですが、うまくできません。
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から何等かの式で作りたいのですが上手く行きません。
% 基本がしっかり解っていれば、簡単に出来るこのなのでしょうが、宜しくお願い致します。

回答(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 个评论
Akira Agata
Akira Agata 2023-2-23
+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 2023-2-24
 迅速なお答え、誠にありがとうございました。この方法で実行できました。大変助かりました。
 このプログラムは、交感神経と副交感神経のバランスを評価するプログラムに組み込む予定です。
 ありがとうございました。
髙橋 健

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Multidimensional Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!