我是 Matlab 的新手,但我浏览了文档,找不到我正在寻找的答案。
我已经对矩阵进行了多次计算,最终得到了一个索引列表和一个应该放入这些索引的值列表。
例如:
Data =
0 0 0 0 0 0
3.7417 3.7417 3.7417 7.0711 3.3166 3.3166
4.2426 4.2426 3.7417 7.0711 5.3852 7.0711
7.0711 6.0828 5.3852 7.4833 6.0828 7.6158
7.1414 7.4833 7.8740 8.7750 7.1414 7.8740
和
Indices =
1 2 3 4 5 6
3 3 1 1 6 5
2 1 2 6 3 4
4 5 5 2 2 2
5 4 6 5 1 3
我想要做的是构造一个方阵(大小为 n 基于在索引矩阵中找到的最大值索引),使得 的第一列Indices
用于索引Result
矩阵的第一行,并且值ofData
被放入Result
矩阵的相应位置,所有未索引的位置都设置为 0。
即使用上面的数据和索引矩阵,我希望最终矩阵看起来像:
Result =
0 4.2426 3.7417 7.0711 7.1414 0
4.2426 0 3.7417 7.4833 6.0828 0
3.7417 3.7417 0 0 5.3852 7.8740
7.0711 7.4833 0 0 8.7750 7.0711
7.1414 6.0828 5.3852 0 0 3.3166
0 7.6158 7.8740 7.0711 3.3166 0
(上面可能有一些错误,因为我是手工完成的,但它应该提供我想要做什么的想法)
Matlab中是否有一种快速简单的方法来做到这一点?许多函数返回索引,我希望有一种简单的方法可以使用这些索引更新/构造矩阵。
谢谢,
格雷格