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...]
答案 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:)