mat = nan (5,4)
mat =
NaN NaN NaN NaN
NaN NaN NaN NaN
NaN NaN NaN NaN
NaN NaN NaN NaN
NaN NaN NaN NaN
fact = rand(5,4)
fact =
0.3507 0.5870 0.8443 0.4357
0.9390 0.2077 0.1948 0.3111
0.8759 0.3012 0.2259 0.9234
0.5502 0.4709 0.1707 0.4302
0.6225 0.2305 0.2277 0.1848
cd =
1
5
2
3
4
>> mat(cd, : ) = fact
mat =
0.3507 0.5870 0.8443 0.4357
0.8759 0.3012 0.2259 0.9234
0.5502 0.4709 0.1707 0.4302
0.6225 0.2305 0.2277 0.1848
0.9390 0.2077 0.1948 0.3111
在 python 或 numpy 中是否有类似的东西基本上做最后一行所做的事情,即你可以输入一列索引,它会自动用相应的行填充 nan 矩阵,而不是遍历它并执行这一行手动按行。
还注意到 cd 可以比 mat 有更多的行,并且 mat 可以自己相应地扩展,至少 matlab 可以。
最佳答案
您可以在 python 中完全做到这一点,只需使用基于 0 的索引而不是基于 1 的索引:
>>> m[cd-1] = fact
>>> m
array([[ 0.3507, 0.587 , 0.8443, 0.4357],
[ 0.8759, 0.3012, 0.2259, 0.9234],
[ 0.5502, 0.4709, 0.1707, 0.4302],
[ 0.6225, 0.2305, 0.2277, 0.1848],
[ 0.939 , 0.2077, 0.1948, 0.3111]])
关于python - numpy 可以像 matlab 那样解释索引列吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233352/