フィルターのクリア

How to reshape nested cell arrays in a table

11 ビュー (過去 30 日間)
Blue
Blue 2019 年 8 月 14 日
コメント済み: Blue 2019 年 8 月 14 日
Hi,
How does one reshape nested cell arrays in Matlab ? Let's say I have something like this:
t = table({1:24}, {1:48}, {1:48}, {1:48});
t = reshape(t.Var3, [4, 12])
How can I reshape Var2, Var3 and Var4 into 4x12 arrays instead of 1x48 ?

採用された回答

madhan ravi
madhan ravi 2019 年 8 月 14 日
編集済み: madhan ravi 2019 年 8 月 14 日
t(:,2:4)=varfun(@(x) {reshape(x{:},4,12)},t(:,2:4))
  1 件のコメント
Blue
Blue 2019 年 8 月 14 日
Thank you all, much appreciated.

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

その他の回答 (1 件)

the cyclist
the cyclist 2019 年 8 月 14 日
編集済み: the cyclist 2019 年 8 月 14 日
Here is one way:
t.Var2 = {reshape(t.Var2{:},4,12)}
and analogously for Var3 and Var4.
Parsing what that is doing, from the inside out:
  • Getting at the numeric array contents, using curly brackets, because Var2 is a cell array
  • Doing the reshape
  • Putting that reshaped numeric array back into a cell array
  • Storing that new cell array into Var2 again
Seems like an odd use of a table to me, but who am I to judge?

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by