gpt4 book ai didi

matlab - 如何使用多个参数在 Matlab 中执行 "find"?

转载 作者:太空宇宙 更新时间:2023-11-03 19:53:59 24 4
gpt4 key购买 nike

我正在寻找一种“向量化”以下代码的方法。也就是我要去掉for循环,耗时很长(这个for循环嵌套在另一个重复4万多次的for循环中)。

for k=1:length
if coords(k,1)<=4 && coords(k,2) <=8
upperLeft(countUL,:) = coords(k,:);
countUL=countUL+1;
end
if coords(k,1)>4 && coords(k,2) <=8
upperRight(countUR,:) = coords(k,:);
countUR=countUR+1;
end
if coords(k,1)>4 && coords(k,2) >8
lowerRight(countLR,:) = coords(k,:);
countLR=countLR+1;
end
if coords(k,1)<=4 && coords(k,2) >8
lowerLeft(countLL,:) = coords(k,:);
countLL=countLL+1;
end
end

我最初尝试使用 Matlab find函数(例如 find(coords(k,1)<=4) ),但在我的例子中,我有两个参数需要“查找”。我试过类似 find(coords(:,1)<=4 && coords(:,2)<=8) 的东西, 但由于 && 的操作数不是标量,这是行不通的。非常感谢任何有关如何执行此操作的想法!

最佳答案

正如您所注意到的,

&&|| 仅适用于标量比较。不过,&| 适用于向量。请注意,您甚至不需要 find:

idxUL = coords(:,1) <= 4 & coords(:,2) <=8;
idxUR = coords(:,1) > 4 & coords(:,2) <=8;

upperLeft = coords(idxUL,:);
upperRight = coords(idxUR,:); %# etc

关于matlab - 如何使用多个参数在 Matlab 中执行 "find"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799603/

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