小编mik*_*ast的帖子

找到索引更高的第一个更大的元素

我有两个向量,AB.对于A我想要找到的第一个元素的索引中的每个元素B都更大并且具有更高的索引.长度AB是一样的.

所以对于矢量:

A <- c(10, 5, 3, 4, 7)

B <- c(4, 8, 11, 1, 5)
Run Code Online (Sandbox Code Playgroud)

我想要一个结果向量:

R <- c(3, 3, 5, 5, NA)
Run Code Online (Sandbox Code Playgroud)

当然我可以用两个循环来做,但它很慢,我不知道如何在这种情况下使用apply(),当索引很重要时.我的数据集具有长度为20000的向量,因此在这种情况下速度非常重要.

一些奖金问题:

  1. 如果我有一个数字序列(比如seq = 2:10),我想找到第一个数字,B对于每个A和每个seq,都高于+ s.

  2. 与问题1)一样,但我想知道第一个更大的值和第一个更低的值,并创建一个矩阵,它存储哪一个是第一个.所以例如我有一个A,和seq的10.我想找到第一个值B,它高于+ 10,或低于-10,然后存储它的索引和值.

r

7
推荐指数
2
解决办法
1933
查看次数

游戏循环与单独的计时器,用于渲染和游戏逻辑

我想将游戏逻辑和渲染分成两个不同的循环,因为我不希望fps控制游戏速度.我尝试通过为渲染创建CADisplayLink以及为游戏逻辑创建NSTimer来实现此目的.但后来发生了一件奇怪的事:

有时候(15个应用程序运行中有1个)游戏以非常低的fps(大约5-10)运行,但其余时间它完全平滑.如果我删除游戏逻辑的NSTimer并将两个循环结合起来,则fps一直很高,但这显然不是一个可接受的解决方案.所以看起来有时两个计时器"相互推迟"或类似的东西,但我并不完全理解runloops的内部工作.

这是我创建计时器和displaylink的方法:

NSTimer *gameTimer = [[NSTimer alloc] initWithFireDate:[NSDate date] interval:1.0 / 60.0 target:self selector:@selector(gameTimerFired:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:gameTimer forMode:NSDefaultRunLoopMode];
[gameTimer release];

CADisplayLink *aDisplayLink = [[UIScreen mainScreen] displayLinkWithTarget:self selector:@selector(drawFrame)];
[aDisplayLink setFrameInterval:animationFrameInterval];
[aDisplayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
self.displayLink = aDisplayLink;
Run Code Online (Sandbox Code Playgroud)

你能告诉我导致fps问题的原因以及解决方法吗?

或者你能推荐任何其他解决方案来分离渲染和游戏逻辑循环吗?

iphone timer ios

6
推荐指数
1
解决办法
1769
查看次数

命名存档对象的最佳实践?

我有一个具有列表输出的函数.每次运行它,我都想用save导出结果.几次运行后,我想读取文件并比较结果.我这样做,因为我不知道将会有多少任务,也许我将使用不同的计算机来计算每项任务.那么我应该如何命名存档的对象,以后我可以全部阅读它们?

我最好的猜测是在保存之前动态命名变量,并跟踪对象名称,但我到处都读到这是一个很大的禁忌.

那我该怎么办呢?

parallel-processing r file

2
推荐指数
1
解决办法
82
查看次数

标签 统计

r ×2

file ×1

ios ×1

iphone ×1

parallel-processing ×1

timer ×1