【发布时间】:2023-03-22 20:41:01
【问题描述】:
在我的算法中使用 Run & Time 我发现将标准差添加到整数有点慢。首先我创建了大整数矩阵:
NumeroCestelli = 5;
lover_bound = 0;
upper_bound = 250;
steps = 10 ;
Alpha = 0.123
livello = [lover_bound:steps:upper_bound];
L = length(livello);
[PianoSperimentale] = combinator(L,NumeroCestelli,'c','r');
for i=1:L
PianoSperimentale(PianoSperimentale==i)=livello(i);
end
然后我添加标准偏差 (sigma = alpha * mu) 和误差(称重),如下所示:
%Standard Deviation
NumeroEsperimenti = size(PianoSperimentale,1);
PesoCestelli = randn(NumeroEsperimenti,NumeroCestelli)*Alfa;
PesoCestelli = PesoCestelli.*PianoSperimentale + PianoSperimentale;
random = randn(NumeroEsperimenti,NumeroCestelli);
PesoCestelli(PesoCestelli<0) = random(PesoCestelli<0).*(Alfa.*PianoSperimentale(PesoCestelli<0) + PianoSperimentale(PesoCestelli<0));
%Error
IncertezzaCella = 0.5*10^(-6);
Incertezza = randn(NumeroEsperimenti,NumeroCestelli)*IncertezzaCella;
PesoIncertezza = PesoCestelli.*Incertezza+PesoCestelli;
PesoIncertezza = (PesoIncertezza<0).*(-PesoIncertezza)+PesoIncertezza;
有更快的方法吗?
【问题讨论】:
-
您能否简要说明您要生成的值类型?
-
我正在尝试模拟MultiheadWeigher。那些料斗里装满了材料(如意大利面)。
PianoSperimentale的行是料斗可以假设的可能配置,列是料斗编号。我需要用整数(设置)创建一个矩阵,然后添加 StdDev 和错误来模拟所有东西:) 问题非常复杂,所以我希望我很清楚 -
你能发布一个最小的工作示例吗?因此,只包括您想要加速的行,并确保我们拥有运行它们的所有信息。例如,在当前示例中,
combinator没有定义,但可能该部分甚至不相关。 -
@DennisJaheruddin 不幸的是,我无法制作一个更简单的工作示例(真正的算法要复杂得多)。 Combinator 是一个函数,你可以找到它here。我需要知道是否有什么东西可以加速 StdDev 和错误部分,或者可能是
for i=1:L部分。