行列を作成したいです。

1 vue (au cours des 30 derniers jours)
Ken Takahashi
Ken Takahashi le 23 Fév 2023
Commenté : Ken Takahashi le 24 Fév 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から何等かの式で作りたいのですが上手く行きません。
% 基本がしっかり解っていれば、簡単に出来るこのなのでしょうが、宜しくお願い致します。

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Multidimensional Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!