我有一个递归函数,我试图@tailrec通过内部递归part(countR3)向队列添加元素(agenda是a scala.collections.mutable.Queue).我的想法是将功能的外部部分放在议程上并总结结果.
注意:这是一个家庭作业问题,因此我不想发布整个代码; 然而,使实现尾递归不是功课的一部分.
以下是与我的问题相关的代码部分:
import scala.collection.mutable.Queue
val agenda: Queue[Tuple2[Int, List[Int]]] = Queue()
@tailrec
def countR3(y: Int, x: List[Int]): Int = {
if (y == 0) 1
else if (x.isEmpty) 0
else if …
else {
agenda.enqueue((y - x.head, x))
countR3(y, x.tail)
}
}
?
agenda.enqueue((4, List(1, 2)))
val count = agenda.foldLeft(0) {
(count, pair) => {
val mohr = countR3(pair._1, pair._2)
println("count=" + count + " countR3=" + …Run Code Online (Sandbox Code Playgroud) 对于我正在编写的Cocoa应用程序,我想支持主文档内容右侧的面板,用户可以在其中添加当前所选文档内容的注释.(如果您熟悉Microsoft Word或Scrivener,此功能类似于这些应用程序中的注释功能.)Scrivener可以很好地开始使用大小适合默认文本的文本字段,然后随着用户增长更高键入它.我想为我的Cocoa应用程序实现相同的行为.
什么是基本策略?
我最近开始探索Scala,并开始在我的Eclipse(Indigo)副本中安装Scala IDE.我最初为Scala 2.9安装了Scala IDE,但后来注意到Scala 2.10有一个更新的版本.在较旧的插件上安装较新的插件似乎已经奏效,但......
Scala 2.10已弃用旧的Scala Actors而转向Akka Actors.因此,我正在尝试向我的玩具Scala项目添加导入:
import akka.actor.Actor
Run Code Online (Sandbox Code Playgroud)
这在IDE中标记为错误
not found: object akka
Run Code Online (Sandbox Code Playgroud)
当我查看我的Scala项目的属性时,我确实没有看到Akka文档中提到的任何akka-*jar文件.
它们是否需要单独下载和安装,即使Scala IDE插件安装了Scala 2.10的其余部分?或者更改包名称作为整合Akka演员代替旧Scala演员的一部分?(文档没有这么说,但Scala 2.10版本是最新的...)
我正在使用Eigen 3模板库将一些MATLAB代码移植到C++,我正在为这个常见的MATLAB习惯寻找一个好的映射:
K>> [1 2 3 4 5] <= 3
ans =
1 1 1 0 0
Run Code Online (Sandbox Code Playgroud)
因此,比较一个数组和一个标量,返回一个具有相同形状的布尔数组.
我知道Eigen的Array类有系数方面的比较运算符,但是如果我正确地解释文档它们只能用于另一个数组; 没有标量值.
是否有一些我错过的选项可以与标量进行比较?或者失败了,一个很好的惯用方法来创建一个适当形状的数组,其中填充了表达式RHS的标量值?
我有一个函数,它将一个图像作为参数,并生成一个标签和一个分数作为结果.我偶尔想要快速测试一个(单元格)图像数组,而我所知道的最方便的方法就是使用它arrayfun.这适用于获取我的函数生成的标签,但我真的希望输出是一个[label score]单元格列表.
我可以在我的函数周围编写一个包装器,它捕获两个值并将它们作为单元格矩阵返回,然后在其中调用该包装器arrayfun,但似乎这是一个常见的习惯用法,应该有一种方法来处理多个返回值更多方便.在那儿?(也许已经存在一个可以做到这一点的标准便利功能?类似于deal... 的反面)
我正在使用BNT的plotgauss2d函数来可视化当在网络中的其他地方观察到证据时2D高斯节点的响应如何变化.
eng = jtree_inf_engine(bnet);
evidence = cell(1, 2)
eng = enter_evidence(eng, evidence);
marginals = marginal_nodes(eng, 1); p_1 = marginals.T
marginals = marginal_nodes(eng, 2); p_2 = marginals.T
marginals
clf; plotgauss2d(marginals.mu, marginals.Sigma);
hold all;
evidence{1} = 1;
marginals = marginal_nodes(enter_evidence(eng, evidence), 2);
p = plotgauss2d(marginals.mu, marginals.Sigma);
set(p, 'Color', 'green');
evidence{1} = 2;
marginals = marginal_nodes(enter_evidence(eng, evidence), 2);
p = plotgauss2d(marginals.mu, marginals.Sigma);
set(p, 'Color', 'red');
legend({'Unknown', 'Class 1', 'Class 2'});
hold off;
Run Code Online (Sandbox Code Playgroud)

如您所见,图例没有拾取我必须手动设置的更改的绘图颜色.(遗憾的是,plotgauss2d不会像您希望的那样自动循环显示颜色.)
有没有办法设置图例中使用的线条颜色?
为了解决Apple的lldb中的错误(rdar:// 13702081),我经常需要按顺序键入两个命令,如下所示:
(lldb) p todo.matA
(vMAT_Array *) $2 = 0x000000010400b5a0
(lldb) po $2.dump
$3 = 0x0000000100503ce0 <vMAT_Int8Array: 0x10400b5a0; size: [9 1]> =
1
1
1
1
1
1
1
1
1
Run Code Online (Sandbox Code Playgroud)
是否可以使用可以为我组合这些步骤的Python库(或其他东西)编写新的lldb命令?理想情况下:
(lldb) pmat todo
$3 = 0x0000000100503ce0 <vMAT_Int8Array: 0x10400b5a0; size: [9 1]> =
1
1
1
1
1
1
1
1
1
Run Code Online (Sandbox Code Playgroud)
感谢Jason Molenda,这是从一个工作的lldb命令脚本输出的:
(lldb) pmat Z
$0 = 0x0000000100112920 <vMAT_DoubleArray: 0x101880c20; size: [9 3]> =
7 9 0.848715
3 5 0.993378 …Run Code Online (Sandbox Code Playgroud) 我有一个Cocoa应用程序,旨在从USB显微镜捕获静态图像,然后对它们进行一些后处理,然后将它们保存到图像文件中.目前,我被困在试图从CMSampleBufferRef传递给我的completionHandler块的那个,NSImage或者其他一些我可以使用熟悉的Cocoa API操作和保存的表示.
我imageFromSampleBuffer()在AVFoundation文档中找到了这个函数,它声称将a转换CMSampleBuffer为a UIImage(叹气),并适当地修改它以返回一个NSImage.但它在这种情况下不起作用,作为对CMSampleBufferGetImageBuffer()返回的调用nil.
这是一个显示CMSampleBuffer传递给我的完成块的日志:
2012-01-21 19:38:36.293 LabCam[1402:cb0f] CMSampleBuffer 0x100335390 retainCount: 1 allocator: 0x7fff8c78620c
invalid = NO
dataReady = YES
makeDataReadyCallback = 0x0
makeDataReadyRefcon = 0x0
buffer-level attachments:
com.apple.cmio.buffer_attachment.discontinuity_flags(P) = 0
com.apple.cmio.buffer_attachment.hosttime(P) = 79631546824089
com.apple.cmio.buffer_attachment.sequence_number(P) = 42
formatDescription = <CMVideoFormatDescription 0x100335220 [0x7fff782fff40]> {
mediaType:'vide'
mediaSubType:'jpeg'
mediaSpecific: {
codecType: 'jpeg' dimensions: 640 x 480
}
extensions: {<CFBasicHash 0x100335160 [0x7fff782fff40]>{type = immutable dict, …Run Code Online (Sandbox Code Playgroud) 在2006 年 11 月一篇关于使用vDSP向量化代码的有用但有些过时的文章中,作者做出了这样的声明:
\n\n\n\n\n需要记住的重要一点是,只有步长等于 1 的操作才能提供速度极快的矢量化代码。
\n
今天仍然如此吗?即使是在具有更强大矢量内在函数的较新英特尔处理器上?
\n\n我问这个问题是因为我正在编写一些矩阵数学例程,并且刚刚开始将它们全部切换为使用类似Fortran的列优先顺序,以便更容易地与MATLAB、BLAS和LAPACK兼容。但现在我发现对vDSP的一些调用需要在不再连续的向量上工作\xe2\x80\xa6
\n\n目前,这些vDSP调用是我的代码所执行的瓶颈例程。并不是说情况总是如此,但至少现在我不想放慢它们的速度,只是为了使对其他库的调用更简单。
\n\n我现在最常调用的vDSP例程是vDSP_distancesq例程是以防万一会产生影响。
matlab ×3
vmat ×3
scala ×2
actor ×1
akka ×1
arrays ×1
avfoundation ×1
c++ ×1
capture ×1
cocoa ×1
colors ×1
eclipse ×1
eigen ×1
ide ×1
image ×1
intrinsics ×1
legend ×1
lldb ×1
mutable ×1
nstextview ×1
objective-c ×1
performance ×1
plot ×1
python ×1
queue ×1
return-value ×1
textbox ×1
vdsp ×1