gpt4 book ai didi

matlab - 在 MATLAB 中是否有一种矢量化方法可以对每列的不同数量的值进行操作?

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

在 MATLAB 中,是否有比使用 for 循环更简洁的方法来按列处理离散条件索引?这是我的代码:

x=[1 2 3;4 5 6;7 8 9];
w=[5 3 2];

q=zeros(3,1);
for i = 1:3
q(i)=mean(x(x(:,i)>w(i),i));
end
q

我的目标是对每列的一组值取前 x% 的平均值。上面的代码有效,但我只是想知道是否有更简洁的方法来做到这一点?

最佳答案

您提到您正在使用函数 PRCTILE ,这表明您可以访问 Statistics Toolbox .这为您提供了解决问题的另一种选择,即使用函数 NANMEAN。 .在以下代码中,x 中小于或等于列的阈值 w 的所有条目都设置为 NaN使用 BSXFUN , 然后用 NANMEAN 计算每列的平均值:

x(bsxfun(@le,x,w)) = nan;
q = nanmean(x);

关于matlab - 在 MATLAB 中是否有一种矢量化方法可以对每列的不同数量的值进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3740051/

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