【发布时间】:2012-09-05 01:25:49
【问题描述】:
可能重复:
How to store value generated from nested for loop in an array, in Matlab?
我有一个数字数组。例如x = [4,9,8]。我用find(x)得到[1,2,3],然后find(x)+length(x)得到[4,5,6]。
我希望这个(在这种情况下,将 3 添加到数组中,以使序列 1,2,3 4,5,6 7,8,9...)继续 n 次,所以我需要一个循环。
现在有了数组 x,我想将 [4,9,8] 添加到 [1,2,3] 中,得到 [5,11,11]。
我有 [1,2,3]...[10,11,12]...[n,n+1,n+2] 来自 find(x)+length(x) 循环,我想要将 x 中的元素添加到相应位置的元素中,在三个向上的数组中。
例如,[4,5,6] 5 位于位置 2。x=[4,9,8]。 9 在 x 内的位置 2。因此,我想将 9 添加到 5。我想为每个元素(在本例中为三个元素中的每一个)执行此操作。我会将 9 加到 11 和 9 到 11,因为这两个数字在各自数组中的位置为“2”。
我正在考虑使用嵌套的 for 循环来处理 find(x)+length(x)。我只是不确定如何进行“位置添加”。
然后我想将加法的结果存储在一个单独的数组中。
提前感谢您的时间和帮助!
【问题讨论】:
-
我尝试使用嵌套的 for 循环,我可以得到很好的序列,只是不是正确的添加 - 即基于位置的那些。到目前为止,我只能得到例如[4,9,8] 加到 [1,2,3] 得到 [5,11,11] 然后 [4,9,8] 加到 [4,5,6] 得到 [8,14,14 ]。这不是我真正想要的。
-
你开始的输入是
x = [4, 9, 8]。我无法看到您所追求的输出...例如,您为什么不想要 [4,9,8] + [4,5,6] = [8,14,14]?这对我来说似乎完全合理。 -
对于该步骤,我想要的输出是 [14,20,20]。这将通过将 9 添加到数组 [5,11,11] 来获得。 9 对应于 x 中的第二个位置。在我的系列数组中(那些是 [1,2,3] [4,5,6] [7,8,9] [10,11,12] ....)我想将 x 中的元素添加到系列数组中的元素基于它们的位置。因此,由于 5 和 11 在其数组的第二个位置,我想将 9 添加到它们,因为 9 在 x 内的第二个位置。
-
您已经发布了similar question。
标签: arrays matlab for-loop nested element