我需要在一个空的JPanel的右下角放一个按钮
+-----------------------------------+
| |
| |
| |
| |
| |
| |
| |
| |
| +-----------+|
| | Click Me! ||
| +-----------+|
+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)
我怎么做?它应该很容易吗?我想找到正确的布局管理器,而不是使用一系列嵌套面板.
JPanel panel = new JPanel();
panel.setLayout(new SomeKindOfLayoutManagerThatDoesThis());
panel.add(new JButton("Click Me!"), SETTINGS);
Run Code Online (Sandbox Code Playgroud) 我正试图在numpy中做一些简单的事情,我确信应该有一个简单的方法.
基本上,我有一个n不同长度的矢量列表.如果v1[i]是i第一个向量的第一个条目,那么我想找到一个n维数组A,这样
A[i,j,k...] = v1[i] v2[j] v3[k] ...
Run Code Online (Sandbox Code Playgroud)
我的问题是:
outer只需要两个向量参数.
einsum 需要像"abcd ..."这样的参数,这似乎是不必要的.
kron 需要看似相当复杂的重塑,并且只需要两个参数.
我想避免尽可能多的复杂性,以避免引入错误.所以我最好是一个命令.
到目前为止,我所掌握的最好的是:
vs = [v1, v2, v3 ...]
shape = map(len, vs)
# specify the orientation of each vector
newshapes = diag(array(shape)-1)+1
reshaped = [x.reshape(y) for x,y in zip(vs, newshapes)]
# direct product
A = reduce(lambda a,b: a*b, reshaped, 1)
Run Code Online (Sandbox Code Playgroud) 我有一个问题,试图获得一些代码,返回我的查询的唯一答案.例如,定义
stuff(A,B,C) :- A=C ; B=C.
morestuff([],[],[]).
morestuff([A|AA],[B|BB],[C|CC]) :- stuff(A,B,C), morestuff(AA,BB,CC).
Run Code Online (Sandbox Code Playgroud)
然后跑
morestuff([A,A],[A,B],[a,b]).
Run Code Online (Sandbox Code Playgroud)
给出输出:
A = a
B = b ? ;
A = a
B = b ? ;
yes.
Run Code Online (Sandbox Code Playgroud)
如您所见,这两种解决方案是相同的.有没有办法让PROLOG回归独特的解决方案,即e.给出输出:
A = a
B = b ? ;
yes.
Run Code Online (Sandbox Code Playgroud) 是否有一个内置的python与一组列表的tupler相同,或类似的东西:
def tupler(arg1, *args):
length = min([len(arg1)]+[len(x) for x in args])
out = []
for i in range(length):
out.append(tuple([x[i] for x in [arg1]+args]))
return out
Run Code Online (Sandbox Code Playgroud)
所以,例如:
tupler([1,2,3,4],[5,6,7])
Run Code Online (Sandbox Code Playgroud)
收益:
[(1,5),(2,6),(3,7)]
Run Code Online (Sandbox Code Playgroud)
或者也许有适当的pythony方式这样做,还是有类似的发电机???
我的笔记本电脑连接了两个摄像头(一个内置),两个都可以工作.(如果我使用Cheese,Ubuntu附带的网络摄像头,它使用外部的).如果我使用
cap = cv.CreateCameraCapture(0)
Run Code Online (Sandbox Code Playgroud)
要么
cap = cv.CreateCameraCapture(-1)
Run Code Online (Sandbox Code Playgroud)
我得到了内置摄像头.如果我使用
cap = cv.CreateCameraCapture(1)
Run Code Online (Sandbox Code Playgroud)
它不起作用,对象'cap'显示为:
<Capture (nil)>
Run Code Online (Sandbox Code Playgroud)
与CaptureFromCAM相同.所以我想知道openCV正在尝试做什么,为什么它似乎不知道第二台相机.应该有两个设备可用(两者都有/ dev/videoN条目).
如果我有一个切片对象
s = slice(a,b,c)
Run Code Online (Sandbox Code Playgroud)
和一个数组长度n,有一个很好的现成迭代器的元素,以便我可以做类似的事情:
for index in FUNCTION_I_WANT(s, n):
do_whatever(index)
Run Code Online (Sandbox Code Playgroud)
让它表现得像切片列表,超越真正可怕的:
def HACKY_VERSION_OF_FUNCTION_I_WANT(s,n):
yield range(n).__getitem__(s)
Run Code Online (Sandbox Code Playgroud) 我有一对像的列表
[[4,1],[1,2],[2,3]]
Run Code Online (Sandbox Code Playgroud)
我们的想法是对它们进行排序,以便第一个节点的第二个索引与第二个节点的第一个匹配.在该示例中,列表已排序.假设列表始终可以唯一地放入此表单中.该列表永远不会循环.
现在,如果有可能,我想要一个compare可以通过以下方式获得此表格的比较器:
x = [[4,1],[1,2],[2,3]]
x.sort(compare)
Run Code Online (Sandbox Code Playgroud)
假设函数compare返回对应于"更大"和"更小"的两个值中的一个.这是否可能,如果是,它是否依赖于排序算法.
如果不可能,它是否可以通过两次通过(可能使用不同的比较器)或任何固定次数的通过.
我在python中写过这个,但我的问题不是具体的.
我一直在思考马克吐温的写作(显然),他开始用英语写作,但整篇文章都改变了拼写规则,最后他最终得到了一些可能被描述为伪德语的东西. .
这让我想知道是否有一些已有语言的解释器,其中一个人可以访问解释器本身,这样你就可以随时改变语言的语法和结构.例如,通常一个if子句是关键字; 有没有一种语言可以让你在飞行中改变或重新定义?想象一下,用一种语言开始一个控制台会话,到最后,在另一种语言中工作.
显然,人们可以编写一个解释器并运行它,也许在执行此操作和修改解释器之间没有具体的区别.我不确定这个.也许你可以动态地对任何给定的解释器进行修改是有限制的吗?
除了这些更开放的问题之外,我只想知道是否有任何已知的口译员允许这样做?或者,或许,这种能力只是一个程度问题,我的问题也很糟糕.
我有一个功能:
val ADD = (x: Double, y Double) => x+y
Run Code Online (Sandbox Code Playgroud)
我想将它放在一张地图中,以下似乎有效
val nameMap = Map(ADD -> "+")
Run Code Online (Sandbox Code Playgroud)
但这不是:
val diffMap = Map(
ADD -> (x: AlgObj,y: AlgObj, xdif: AlgObj, ydif: AlgObj) =>
new AlgObj(ADD, xdif, ydif))
Run Code Online (Sandbox Code Playgroud)
我尝试的各种其他事情也没有尝试过,总是带有这样的信息:"不是一个合法的形式参数",带有" - >"下的插入符号.有谁知道这个错误信息是什么意思?
作为练习,我想我会尝试在Scala中实现一个不可变的双向链表.目前,lazy vals导致堆栈溢出.有人可以解释为什么会这样吗?我很确定递归函数通常会终止,但长度为3是一个非常小的数字,可以从终止函数创建溢出.似乎懒惰意味着它会陷入某个循环中.
class Node(val prev: Option[Node], val next: Option[Node], val id: Int){
override def toString = "["+id+"] "+next.toString
}
def addNodes(nNodes: Int, last: Node): Node = {
if(nNodes > 0){
lazy val newNode: Node =
new Node(Some(last), Some(addNodes(nNodes-1, newNode)),nNodes)
newNode
} else {
new Node(Some(last), None, nNodes)
}
}
def doublyLinked(n:Int) = {
lazy val list: Node = new Node(None, Some(addNodes(n-2, list)),n-1)
list
}
val x = doublyLinked(3)
println(x)
Run Code Online (Sandbox Code Playgroud) 我在尝试运行Netbeans(7.2)时遇到了一个反复出现的错误,上次有了它,我找到了一个可以将所有文件移动到新项目的地方.这可能会奏效,但我的项目规模让人非常麻烦.这是跟踪......
Exception in thread "main" java.lang.NoClassDefFoundError: X.X.X.X
Caused by: java.lang.ClassNotFoundException: X.X.X.X
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: X.X.X.X Program will exit.
Run Code Online (Sandbox Code Playgroud)
它肯定在那里,10分钟前很好,我还没碰过它.
我很确定它与netbeans的自动编译(可能还有代码完成功能)有关.有没有办法可以重置所有内部数据,而无需将所有内容移动到新项目.或任何其他建议.
有时使用import语句来访问对象的多个元素是方便和清晰的.
例如,代码
x.y.z.a = 1
x.y.z.b = 2
x.y.z.c = 3
Run Code Online (Sandbox Code Playgroud)
可写成
{
import x.y.z._
a = 1
b = 2
c = 3
}
Run Code Online (Sandbox Code Playgroud)
显然,当名字更长时,它会更有用.
所有工作都是在编译时完成的,还是以某种方式在运行时执行import语句?使用这种风格是否有任何成本,效率或其他方面的成本?
我看到的一切都说明了我如何得到一个合理的参数种子随机数.
int seed = time(NULL);
Run Code Online (Sandbox Code Playgroud)
段错误.那样做
time_t seed = time(NULL);
int seed = (int)time(NULL);
Run Code Online (Sandbox Code Playgroud)
等等
有什么想法吗?