在 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)。
我创建了一个矩阵,它最初是一个列向量
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)。