我在Matlab中有一个表格的二维单元格B
,即:
A = table(normrnd(0,1,5,1),normrnd(0,1,5,1),normrnd(0,1,5,1));
B = {A,A,A,A;A,A,A,A}
B =
[5x3 table] [5x3 table] [5x3 table] [5x3 table]
[5x3 table] [5x3 table] [5x3 table] [5x3 table]
我想在单元格数组的第一维(2行)中连接表格,但要将单元格结构保留在另一个维度中。因此,我想有以下内容:
{cat(1,B{:,1}),cat(1,B{:,2}),cat(1,B{:,3}),cat(1,B{:,3})}
ans =
[10x3 table] [10x3 table] [10x3 table] [10x3 table]
然而,由于我的实际单元阵列有超过2行和4列,这不是一个合适的解决方案。我尝试过使用cat
和vertcat
,但我无法让它们在第二维中不连接。使用'cat',我得到:
cat(1,B{:})
ans =
[40x3 table]
有什么想法吗?
谢谢!
答案 0 :(得分:1)
试试这个:
result = cellfun(@(a,b) cat(1,a,b),B(1,:),B(2,:),'UniformOutput',false);
输出:
result =
[10x3 table] [10x3 table] [10x3 table] [10x3 table]
(我们需要将UniformOuput
设置为false
,因为输出单元格的内容不是标量。)
我案例中其中一个单元格的内容:
result{1}
ans =
Var1 Var2 Var3
________ _______ ________
-0.20497 0.6715 1.0347
-0.12414 -1.2075 0.72689
1.4897 0.71724 -0.30344
1.409 1.6302 0.29387
1.4172 0.48889 -0.78728
-0.20497 0.6715 1.0347
-0.12414 -1.2075 0.72689
1.4897 0.71724 -0.30344
1.409 1.6302 0.29387
1.4172 0.48889 -0.78728