gpt4 book ai didi

matlab - 按行 "ismember"无 for 循环

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:27 25 4
gpt4 key购买 nike

我试图在 MATLAB 中执行逐行“ismember”,以便找出 SetInput 的每个元素所在的位置。这是我到目前为止的工作。

function lia = ismemberrow(Input, Set)
lia = false(size(Input)); % Pre-assign the output lia
for J = 1 : size(Input,1)
% The J-th row of "lia" is the list of locations of the
% elements of Input(J,:) in Set
lia(J,:) = find(ismember(Set, Input(J,:)));
end
end

例如,如果变量InputSet定义如下

Input = [1 4; 
4 2;
4 3;
2 4;
1 2;
3 2];
Set = [3 2 4 1];

lia = ismemberrow(Input,Set) 的输出 lia 将是:

lia = [4 3; 
3 2;
3 1;
2 3;
4 2;
1 2];

到目前为止,我的函数运行准确,但是这个函数在我的项目中被调用了很多次,所以我在考虑是否可以减少 for 循环以减少它花费的时间。我可以对此发表一些意见吗?

最佳答案

一次调用 ismember (不需要循环)将在第二个输出参数中给你你想要的:

>> [~, lia] = ismember(Input, Set)

lia =

4 3
3 2
3 1
2 3
4 2
1 2

关于matlab - 按行 "ismember"无 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200450/

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