reshaping cell containing double arrays

1 次查看(过去 30 天)
Hi,
I have (as an example) the following cell array:
test =
1×4 cell array
[40×1 double] [40×1 double] [40×1 double] [40×1 double]
I want test to be a 1 x 1 cell, containing the double arrays (from left to right) as one double array of dimension 160 x 1. reshape(test,[160,1]) does not work directly here. What can I do?

回答(3 个)

KSSV
KSSV 2017-10-10
编辑:KSSV 2017-10-10
test = cell(1,4) ;
for i = 1:4
test{i} = rand(40,1) ;
end
iwant = cell2mat(test) ;
iwant = {iwant(:)} ;

Guillaume
Guillaume 2017-10-10
That's because what you want is not reshaping but a concatenation. (The matrices may not be contiguous in memory):
test = [test{:}]
  2 个评论
MiauMiau
MiauMiau 2017-10-10
That is giving me a 40x4 matrix...?!
Guillaume
Guillaume 2017-10-10
编辑:Guillaume 2017-10-10
Oh yes, your vectors are column vectors. Concatenate them vertically then:
test = vertcat(test{:})

请先登录,再进行评论。


KL
KL 2017-10-10
编辑:KL 2017-10-10
test = cell2mat(test');
this?

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by