在 Matlab 中循环时从一个矩阵查找到另一个矩阵

Lookup from one matrix into another as you loop through in Matlab

我创建了一个矩阵,它最初是一个列向量

matrix1 = [1:42]'

我有另一个矩阵,它是一个 2000×2 的矩阵,名为 matrix2
matrix2 的第 1 列将始终是 1 到 42 之间的数字,并且顺序不限。

我想遍历 matrix2 列 1 并用 matrix2 列 2 的结果填充 matrix1 列 2 针对相应的数字 - 在循环的每次迭代结束时我要总结matrix2的column2。

所以在伪代码中它会是这样的:

for i = 1:length(matrix2)
    look at i,1  its a "4" for example - take matrix2 column2
    and populate matrix1 next to the 4
    (ie column 2 in matrix 1 next to the 4 with this number)

所以最初矩阵1

1
2
3
4
5
6

矩阵 2

3    100
1    250
2    200
1    80
4    40
5    50

所以在一次迭代后 matrix1 看起来像这样

1   
2
3   100
4
5
6

迭代 2 后矩阵 1 看起来像这样

1   250
2
3   100
4
5
6

迭代 3 后矩阵 1 看起来像这样

1   250
2   200
3   100
4
5
6

如前所述,我将在每次迭代后执行计算,但重要的是填充矩阵 1 的第 2 列。显然会有很多覆盖或替换 matrix1 column2 中的数字,但这很好,因为我将在每次迭代后执行计算。

试试这个:

    for ii =1:length(matrix2)
       matrix1(matrix2(ii,1),2) = matrix2(ii,2);
    end

可能需要从一开始就将 matrix1 设为 2D(只需将第 2 列初始化为全 0)。