行列を作成したいです。
1 次查看(过去 30 天)
显示 更早的评论
%開始と終了のタイミングは解っている場合に、それを一列に並べた行列が作りたいのですが、うまくできません。
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から何等かの式で作りたいのですが上手く行きません。
% 基本がしっかり解っていれば、簡単に出来るこのなのでしょうが、宜しくお願い致します。
0 个评论
回答(1 个)
交感神経優位なあかべぇ
2023-2-23
このような方法でどうでしょうか?
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{:}]
2 个评论
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{:}]
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multidimensional Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!