gpt4 book ai didi

arrays - 如何在不使用 for 循环的情况下引用列索引向量更改矩阵的元素?

转载 作者:行者123 更新时间:2023-12-02 08:18:37 25 4
gpt4 key购买 nike

我有一个矩阵

a =

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

b向量

b =

1 2 3 4 5 5

我想用b矩阵值的引用值替换a矩阵中每一行的值,最后生成如下矩阵而不使用for循环。

a_new =

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 1

如果 b 的第一个元素,b(1) = 1 所以更改 a 向量的第一行并将第一个元素设为 1 因为 b(1 ) = 1

如何在不使用 for 循环的情况下实现它?

最佳答案

当然。你只需要构建一个 linear index来自 b 并使用它来填充 a 中的值:

a = zeros(6,5); % original matrix
b = [1 2 3 4 5 5]; % row or column vector with column indices into a
ind = (1:size(a,1)) + (b(:).'-1)*size(a,1); % build linear index
a(ind) = 1; % fill value at those positions

关于arrays - 如何在不使用 for 循环的情况下引用列索引向量更改矩阵的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39613081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com