使用其他数组的相应元素添加数组的元素

时间:2016-08-01 12:00:10

标签: arrays matlab

我有多个数组,数字可以是任意的。但是所有阵列的大小都是一样的。我如何添加所有数组的相应元素的每个元素,并可能将其保存在另一个数组

A1 = [1 2 3 4 5 6]

A2 = [1 2 3 4 5 6]

.

.

.

.

final = [1+1+1+...  2+2+2+.... 3+3+3+3.... 4+4+4.... 5+5+5+5...   6+6+6+6...]

3 个答案:

答案 0 :(得分:2)

由于您的阵列长度相同,您只需添加阵列即可形成新阵列。

final = A1+A2

此功能在您的工作区中搜索包含大写“A”的所有变量。 for循环添加所有找到的变量。如果还有其他变量包含'A',则必须进行其他限制。

variables = who %# all variable names from workspace
index = strmatch('A',variables) %# indices matching "A"
newarray = 0 

for j = 1:numel(index)
    tmp =  eval(char(variables(index(j)))); %# store variable in tmp 
    newarray = newarray + tmp; %# sum 
end

答案 1 :(得分:2)

如果你有一个未知数量的A,你可以尝试这样的事情:

final = 0
i = 1
while exist(['A' num2str(i)]) == 1 % ['A' num2str(i)] constructs the variable name, eval calls it
    final = final + eval(['A' num2str(i)]);
    i = i + 1;
end

只要变量存储在工作空间中,它就可以工作,长度相同,名为A1,A2,A3,... A9,A10,......

答案 2 :(得分:1)

假设您有这种结构(正如您在评论中所写的那样):

m = vertcat(main.seg_err);;

你可以把它转换成矩阵:

final = sum(m)

而不是在一个简单的命令中获取总和:

final =

     12    16    20    24    28    32

结果:

<tbody>
<tr height=""22"">
<td width=""40%"" class=""detb"" colspan=""1""></td>

<td align=""right"" class=""detb"">Mar 13</td>
<td align=""right"" class=""detb"">Mar 12</td>
<td align=""right"" class=""detb"">Mar 11</td>
<td align=""right"" class=""detb"">Mar 10</td>
<td align=""right"" class=""detb"">Mar 09</td>
</tr>

感谢@beaker:)