gpt4 book ai didi

matlab - 在 MATLAB 中将零分配给矩阵的特定索引

转载 作者:行者123 更新时间:2023-12-02 06:58:21 24 4
gpt4 key购买 nike

例如:

a = [1 2 3; 4 5 6; 7 8 9];   
b = [2 4]; %//Indices I got

如何将 a 中未在 b 中索引的每个元素设置为零以获得:

0 2 0  
4 0 0
0 0 0

我尝试了for循环:

for i = 1:numel(a)  
if i ~= b
a(i) = 0;
end
end

但是我处理的矩阵非常大,并且需要很长的时间才能完成运行。

有什么聪明的方法吗?谢谢。

最佳答案

试试这个:

a = [1 2 3; 4 5 6; 7 8 9];
b = [2 4];

a(setdiff(1:length(a(:)),b)) = 0;

更新

正如@Daniel建议的,对于大矩阵最好使用

a(setdiff(1:numel(a),b)) = 0;

关于matlab - 在 MATLAB 中将零分配给矩阵的特定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35530868/

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