我见过这个问题的更广泛版本,其中个人正在寻找多个汇总统计数据,但我还没有看到提出的解决方案。我只对 Python 中的中位数感兴趣。
假设我在循环中生成一百万个值。由于内存问题,我无法将百万个值保存到列表中并在完成后计算中位数。我可以一边计算中位数吗?对于平均值,我只是逐步对值求和,完成后除以一百万。对于中位数来说,答案似乎并不那么直观。
我陷入了“思想实验”部分,所以我无法真正尝试任何我认为可能有效的东西。我不确定这是否是一个已经实现的算法,但我找不到它是否已经实现。
这是我的中位选择代码版本
#include<iostream>
using namespace std;
#define max 1000
int a[max];
int n;//number of elements
void Swap(int i,int j)
{
int k=a[i];
a[i]=a[j];
a[j]=k;
}
int randint(int l, int u)
{ return l + (RAND_MAX*rand() + rand()) % (u-l+1);
}
void read()
{
cout<<" enter number of elements ";
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
}
void select(int l,int u,int k)
{
int i,j;
int t,temp;
if(l>=u)
return;
Swap(l,randint(l,u));
t=a[l];
i=l;
j=u+1;
for(;;)
{
do i++; while(i<=u && a[i]<t);
do j--;while(a[j]>t);
if(i>j)
break; …
Run Code Online (Sandbox Code Playgroud) 我需要在MATLAB中为图像实现中值滤波.但是,我不允许在MATLAB中使用medfilt2
或ordfilt2
函数.我们最近也开始学习MATLAB.
是否有可用于中值滤波器或高斯滤波器的代码?
我需要计算中位数.我被告知,最好的方法是在这个特定的应用程序中使用优先级队列.我不知道如何继续.我真的很感激任何帮助.
是否可以在 ggplot boxplot 中使用平均值而不是中位数?我问的原因是在我的数据中,中位数 = 0.0,平均值 = 0.40,我对平均值感兴趣。
我有一个包含最小和最大3个范围的向量,即
low<-1,2,3
high<-2,3,4
Run Code Online (Sandbox Code Playgroud)
代表范围1-2,2-3和3-4
我需要返回包含每个范围中点的第三个向量,即
mid<-1.5,2.5,3.5
Run Code Online (Sandbox Code Playgroud)
有什么快速的方法吗?