有3个矩阵A,B,C:
A=[0 1;2 3]
B=[4 5;6 7]
C=[8 9;10 11]
如何创建新矩阵D(2,2),因为其元素是类型
的数组D = [{A(1,1), B(1,1), C(1,1)} {{A(1,2), B(1,2), C(1,12};
{A(2,1), B(2,1), C(2,1)} {A(2,2), B(2,2), C(2,2)}]
例如:使用运算符D(1,1)给出结果
0,4,8
括号{}仅是说明性的,不代表matlab语法...
答案 0 :(得分:3)
您可以沿第三维堆叠矩阵:
D = cat(3,A,B,C);
然后您可以访问:
>> D(1,1,:)
ans(:,:,1) =
0
ans(:,:,2) =
4
ans(:,:,3) =
8
如果你想获得1D-vector:
>> squeeze(D(1,1,:)) %# or: permute(D(1,1,:),[1 3 2])
ans =
0
4
8
如果您更喜欢使用单元格数组,可以使用以下方法构建它:
D = cellfun(@squeeze, num2cell(cat(3,A,B,C),3), 'UniformOutput',false);
可以访问:
>> D{1,1}
ans =
0
4
8
答案 1 :(得分:1)
你快到了:
D = [{[A(1,1), B(1,1), C(1,1)]} {[A(1,2), B(1,2), C(1,2)]};
{[A(2,1), B(2,1), C(2,1)]} {[A(2,2), B(2,2), C(2,2)]}]
(你看到其他分支?)
D现在是一个单元阵列,每个单元格包含1x3矩阵。
要访问单元格数组,请使用以下语法:
D{1,1}