Converting a cell type data to a 4d format

1 回表示 (過去 30 日間)
Saugata Bose
Saugata Bose 2019 年 6 月 25 日
編集済み: Saugata Bose 2019 年 6 月 26 日
Hi,
I struck into a phase where my data came into one format and I need to reshape it to other format. I have tried reshape and permute, yet, I did not achieve the ultimate result. Would you please help me to get the result. And I would really appreciate if you would please explain your solution.
Input:
A={5 x 1} cell type data where every cell is in this format {300 x 18 single}
Expected Output:
I expect to have an output where each element of A will be formatted as 18 x 300 x 1 x 1 structure.
I have tried to implement the following code to format A but I did not achieve the expected result.
z = cellfun(@(X) permute(X,[3 2 1]),A,'UniformOutput',false);
I am looking for your advice in this regard.
Thanks
  3 件のコメント
Saugata Bose
Saugata Bose 2019 年 6 月 26 日
@madhan: Hi. I would expect each cell from A(of size 300 x 18) will turn into a 18 x 300 x 1 x 1, 18 x 300 x 1 x 2, 18 x 300 x 1 x 3, 18 x 300 x 1 x 4 and 18 x 300 x 1 x 5 format. I am not sure though, whether it is possible or not. what you think?
per isakson
per isakson 2019 年 6 月 26 日
What's the meaning of the colons in A(1,:1,:1,:1) ?

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

採用された回答

madhan ravi
madhan ravi 2019 年 6 月 26 日
Try this:
AA=cellfun(@(x) x.',A,'un',0);
Wanted = cat(4,AA{:})
  3 件のコメント
madhan ravi
madhan ravi 2019 年 6 月 26 日
編集済み: madhan ravi 2019 年 6 月 26 日
Bose keep the facts straight the latter comment you made seems to contradict the original question before you edited.
:1 is not a valid MATLAB syntax
Saugata Bose
Saugata Bose 2019 年 6 月 26 日
@Madhan. I absolutely agree. this is my wrong understanding. So to access each of the 4 d element seperately I need to acces by A(:,:,:,1). Thanks for such a solution. I'll edit my post to undo my wrong output expectation.

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

その他の回答 (1 件)

KSSV
KSSV 2019 年 6 月 26 日
% CReate random input for demo
A = cell(5,1) ;
for i = 1:5
A{i} = rand(300,18) ;
end
B = zeros(18,300,5) ;
for i = 1:5
B(:,:,i) = A{i}' ;
end

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by