gpt4 book ai didi

arrays - Matlab:在指定位置插入多个元素

转载 作者:行者123 更新时间:2023-12-02 11:47:24 30 4
gpt4 key购买 nike

我有一个大数组A,我希望在其中的特定位置插入值。这些值和位置存储在数组 B 中。我可以使用索引来执行此分配,即不诉诸 for 循环或 arrayfun 吗?

示例:

% target array
A = [NaN NaN;
NaN NaN];

% r c value
B = [1 1 17;
1 2 13;
2 2 21];

% ?? Mystery operation ??

% Desired result:

A = [17 13;
NaN 21];

最佳答案

这是一个矢量化解决方案:

accumarray(B(:,1:2),B(:,3),[],[],NaN)

引用 accumarray 的文档我们可以使用签名accumarray(subs,val,sz,fun,fillval)前两个参数是 subs= [row and column indices]val=value of matrix和第五个参数 fillval :

fills all elements of A that are not referred to by any subscript in subs with the scalar value fillval

所以我们使用NaN对于第五个参数。

或者您可以使用签名accumarray(subs,val,sz,fun,fillval,issparse)如果你想创建稀疏矩阵。

关于arrays - Matlab:在指定位置插入多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203057/

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