matlab元胞数组内部怎么做运算?我有一个元胞数组x(100,1),里面的100个数组都为5行5列的矩阵,我想把这100个矩阵相加,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 16:17:34

matlab元胞数组内部怎么做运算?我有一个元胞数组x(100,1),里面的100个数组都为5行5列的矩阵,我想把这100个矩阵相加,
matlab元胞数组内部怎么做运算?
我有一个元胞数组x(100,1),里面的100个数组都为5行5列的矩阵,我想把这100个矩阵相加,

matlab元胞数组内部怎么做运算?我有一个元胞数组x(100,1),里面的100个数组都为5行5列的矩阵,我想把这100个矩阵相加,

先用cat命令把cell数组拼接为三维数组,然后沿第3维求和即可:

sum(cat(3,x{:}),3)

 

示例:

>> for i=1:100,x(i,1)={rand(5,5)};end
>> whos
  Name      Size                   Bytes  Class
  ans       5x5                      200  double array
  i         1x1                        8  double array
  x       100x1                    26000  cell array
Grand total is 2626 elements using 26208 bytes
>> sum(cat(3,x{:}),3)
ans =
   47.9197   49.7069   49.4688   48.7908   49.0307
   47.0792   50.9339   53.1208   52.5602   49.8037
   52.8301   53.0407   51.9221   52.8539   53.3921
   49.0305   50.9685   52.2504   51.3221   44.0397
   47.2022   50.6585   49.9662   50.1173   51.2624

第一句用于生成测试数据,第二句查看变量情况,你需要的只是第三句.