我如何从一个ArrayList<E>?理想情况下,我希望能够连续调用该take()方法来获取另一个x元素,而无需替换.
我最近将我的volumeraycaster从OpenGL移植到OpenCL,这使得raycaster的性能降低了大约90%.我跟踪了OpenCL的图像采样功能的性能下降,这比相应的OpenGL纹理采样功能慢得多.通过删除图像采样功能和纹理采样功能,两个raycaster实现具有大致相同的速度.为了轻松地在不同的硬件上使用功能,并在其余的RT代码中排除一些愚蠢的错误,我写了一个小的基准测试,将OpenCL采样速度与OpenGL采样速度进行比较,并在不同的机器上进行测试但是OpenCL仍然只占OpenGL性能的10%左右.
基准测试的OpenCL HostCode(至少是其中最重要的部分):
void OGLWidget::OCLImageSampleTest()
{
try
{
int size=8;
float Values[4*size*size*size];
cl::Kernel kernel=cl::Kernel(program,"ImageSampleTest",NULL);
cl::ImageFormat FormatA(CL_RGBA,CL_FLOAT);
cl::Image3D CLImage(CLcontext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR ,FormatA,size,size,size,0,0,Values,NULL);
cl::ImageFormat FormatB(CL_RGBA,CL_UNSIGNED_INT8);
cl::Image2D TempImage(CLcontext, CL_MEM_WRITE_ONLY,FormatB,1024,1024,0,NULL,NULL );
kernel.setArg(0, CLImage);
kernel.setArg(1, TempImage);
cl::Sampler Samp;
Samp() = clCreateSampler( CLcontext(), CL_TRUE, CL_ADDRESS_REPEAT, CL_FILTER_LINEAR, NULL);
kernel.setArg(2, Samp);
QTime BenchmarkTimer=QTime();
BenchmarkTimer.start();
cl::KernelFunctor func = kernel.bind(queue, cl::NDRange(1024,1024), cl::NDRange(32,32));
func().wait();
int Duration = BenchmarkTimer.elapsed();
printf("OCLImageSampleTest: %d ms \n", Duration);
}
catch (cl::Error& err)
{
std::cerr << "An OpenCL error occured, " << err.what()
<< "\nError num …Run Code Online (Sandbox Code Playgroud) 我有兴趣确定音频样本的音乐键.算法如何(或可能)试图逼近音乐音频样本的关键字?
Antares Autotune和Melodyne是两款完成此类工作的软件.
任何人都可以给出一些关于这将如何工作的外行的解释?通过分析和弦进行的频谱等,以数学方式推断出歌曲的关键.
这个话题让我很感兴趣!
编辑 - 从为这个问题做出贡献的每个人中找到了精彩的资源和丰富的信息.
尤其来自:the_mandrill和DanielBrückner.
这里解释了这个功能numpy.random.choice.但是,我对第三个参数感到困惑replace.它是什么?在哪种情况下它会有用吗?谢谢!
我的手机附带的默认动态壁纸之一是一个壁纸,显示在后台实时播放音乐的波形.我想知道如何做到这一点.我似乎应该以某种方式访问背景音乐的流数据并实时计算样本,但我不知道如何获取流数据.我想我可以按照本教程http://codeidol.com/java/swing/Audio/Build-an-Audio-Waveform-Display/显示波形,但我不确定如何做到这一点.非常感谢帮助/
我有一个格式的数据框:
head(subset)
# ants 0 1 1 0 1
# age 1 2 2 1 3
# lc 1 1 0 1 0
Run Code Online (Sandbox Code Playgroud)
我需要根据年龄和lc创建带有随机样本的新数据框.例如,我想要30个年龄的样本:1和lc:1,30个样本来自年龄:1和lc:0等.
我确实看过随机抽样方法;
newdata <- function(subset, age, 30)
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的代码.
问题:
我试图使用 R 生成一个随机研究设计,其中一半的参与者被随机分配到“治疗 1”,另一半被分配到“治疗 2”。但是,因为一半的受试者是男性,一半是女性,而且我还想确保每次治疗都有相同数量的男性和女性,所以应该将一半的男性和女性分配到“治疗 1”,其余的一半应分配给“治疗 2”。
这种设计有两个并发症:(1)这是一项为期一年的研究,必须每天分配参与者进行治疗;(2) 每个参与者必须在 28 天内至少接受“治疗 1”10 次。
这甚至可以在 R 界面中自动化吗?我认为是这样,但我认为我作为 R 程序员的初学者身份禁止我自己找到解决方案。几天来,我一直在努力弄清楚如何实现这一点,并且浏览了本网站上许多类似的帖子,但无法在此处成功应用。我希望那里有人知道一些可以帮助我解决这个问题的技巧,任何建议将不胜感激!
我试过的:
具体信息
# There are 16 participants
p <- c("P01", "P02", "P03", "P04", "P05", "P06", "P07", "P08", "P09", "P10", "P11", "P12", "P13", "P14", "P15", "P16")
# Half are male and half are female
g <- c(rep("M", 8), rep("F", 8))
# I make a dataframe but this may not be necessary
df <- cbind.data.frame(p,g)
# There are 365 days in one year …Run Code Online (Sandbox Code Playgroud) 在浏览了pyaudio的文档并阅读了网上的其他文章后,如果我的理解是正确的,我会感到困惑.
这是在pyaudio网站上找到的录音代码:
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("* recording")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
Run Code Online (Sandbox Code Playgroud)
如果我添加这些行,那么我可以播放我记录的任何内容:
play=pyaudio.PyAudio()
stream_play=play.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
output=True)
for data in frames:
stream_play.write(data)
stream_play.stop_stream()
stream_play.close()
play.terminate()
Run Code Online (Sandbox Code Playgroud)
pyaudio.get_sample_size(pyaudio.paInt16). …我有一系列事件流经我的服务器.我不可能存储所有这些,但我希望能够定期处理其中的一些.所以,我想保留一个流的子集,它是我所见过的所有内容的随机抽样,但是上限为最大尺寸.
因此,对于每个新项目,我需要一个算法来决定是否应该将它添加到存储集,或者我是否应该丢弃它.如果我添加它,并且我已经达到极限,我需要一个算法来驱逐其中一个旧项目.
显然,只要我低于我的极限(只保存一切),这很容易.但是,一旦我超过这个限制,我怎样才能保持良好的随机抽样而不偏向旧物品或新物品?
谢谢,