gpt4 book ai didi

Matlab bsxfun() 代码

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

这是做什么的?

u = [5 6];
s = [1 1];
data1 =[randn(10,1) -1*ones(10,1)];
data2 =[randn(10,1) ones(10,1)];
data = [data1; data2];
deviance = bsxfun(@minus,data,u);
deviance = bsxfun(@rdivide,deviance,s);
deviance = deviance .^ 2;
deviance = bsxfun(@plus,deviance,2*log(abs(s)));
[dummy,mini] = min(deviance,[],2);

在没有 bsxfun 的情况下是否有等效的方法?

最佳答案

函数BSXFUN将通过复制两个输入参数的维度来执行请求的逐元素操作(函数句柄参数),以便它们在大小上相互匹配。您可以避免使用 BSXFUN在这种情况下,通过使用函数 REPMAT 自己复制变量 us使它们每个都与 data 大小相同。然后你可以使用标准 element-wise arithmetic operators :

u = repmat(u,size(data,1),1);  %# Replicate u so it becomes a 20-by-2 array
s = repmat(s,size(data,1),1); %# Replicate s so it becomes a 20-by-2 array
deviance = ((data-u)./s).^2 + 2.*log(abs(s)); %# Shortened to one line

关于Matlab bsxfun() 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5382654/

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