How to extract cell array of 2D matrices into a timeseries?

4 ビュー (過去 30 日間)
Daniel Flisek
Daniel Flisek 2025 年 1 月 10 日
コメント済み: Daniel Flisek 2025 年 1 月 13 日
I have some data that is stored as a 1666x1 cell array. Each cell contains a 4x19 double. I need to extract this data and attach it to a timeseries object. Timeseries will not take a cell array directly, so I need to extract the cells.
So let's say the cell array is named data, and the timeseries is ts. I need:
ts.Data(1) = data{1}
ts.Data(2) = data{2}
etc.
cell2mat() concatenates everything into 6664x19, and I can't get reshape() to chop it up into the correct 4x19 blocks. I could do it in a for loop, but that's not very satisfying in MATLAB.
I know this is a simple syntax thing, but I can't seem to find an answer that works.
  1 件のコメント
Burak
Burak 2025 年 1 月 10 日
編集済み: Burak 2025 年 1 月 10 日

To populate a timeseries object with data from a cell array where each cell contains a 4x19 double, you can indeed use a for loop. However, if you want a more MATLAB-esque solution (avoiding explicit loops), you can use arrayfun to achieve this. Here’s how you can do it:

   % Initialize the timeseries object with an empty array of the correct size
    ts = timeseries();
    % Use arrayfun to attach data to the timeseries object
    ts.Data = cat(3, data{:});

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2025 年 1 月 10 日
data = {rand(2,5); rand(2,5); rand(2,5)};
ts = timeseries(cat(3,data{:}))
timeseries Common Properties: Name: 'unnamed' Time: [3x1 double] TimeInfo: tsdata.timemetadata Data: [2x5x3 double] DataInfo: tsdata.datametadata
getsamples(ts,1)
timeseries Common Properties: Name: 'unnamed' Time: [1x1 double] TimeInfo: tsdata.timemetadata Data: [2x5 double] DataInfo: tsdata.datametadata
So in general you
ts = timeseries(cat(3, data{:}));
  1 件のコメント
Daniel Flisek
Daniel Flisek 2025 年 1 月 13 日
That worked! I knew it'd be something simple. Thanks for taking the time to answer.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeTime Series Collections についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by