当我将代码从C++,Java,Python等语言移植到Matlab中时,需要它以与整数相同的方式运行.
int32(n)不适用于除法(见帖子标题).有类型吗?
编辑:猜猜是什么,事实证明我最喜欢的语言并不像我想象的那样一致.C++:
#include <cstdio>
int main() {
#define TEST(a, b) printf("%d / %d = %d\n", (a), (b), (a)/(b));
TEST(-4, 3);
TEST(4, -3);
TEST(-5, 3);
TEST(5, -3);
TEST(-1, 2);
TEST(1, -2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生产:
-4 / 3 = -1
4 / -3 = -1
-5 / 3 = -1
5 / -3 = -1
-1 / 2 = 0
1 / -2 = 0
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
def TEST(a, b): return (a)/(b)
>>> TEST(-4, 3);
-2
>>> TEST(4, -3);
-2 …Run Code Online (Sandbox Code Playgroud) 我想如果我写的话
for x = cell_array
...
end
Run Code Online (Sandbox Code Playgroud)
然后循环将遍历元素cell_array,但在以下情况下它不会:
>> tags
tags =
'dset3'
'dset4'
'cpl1'
>> class(tags)
ans =
cell
>> for t = tags
tmp = t{:} %No semicolon: i.e. print it.
end
tmp =
dset3
Run Code Online (Sandbox Code Playgroud)
所以它只适用于第一个元素.
有什么问题?
我找不到关于所有这些之间关系的简明答案,以便我可以选择最佳实践并开始。JTextComponent已:
旧的addKeyListener(..)。我们写一个KeyListener与被调用的方法keyPressed(..),keyTyped(..)等事件,我们可以查询:event.getKeyCode()。
addKeymap(..)和setKeymap(..)。A Keymaphas addActionForKeyStroke(..),它接受 a KeyStroke(我们可以通过调用KeyStroke的静态方法来指定字符或键码)和 an Action,它是一个ActionListener带有花里胡哨的东西。
getInputMap(..)和getActionMap(..)。AnInputMap将 a KeyStroke(如上)映射到 a String,并将ActionMap字符串映射到 an Action(如上)。Java 教程如何使用键绑定讨论了这一点。
这是实现相同功能的三种冗余方式。除了比较优势/劣势之外,这自然会引发一个问题,即这三种机制如何共存?哪些优先于其他?
例如,Numpy允许多维切片:
a[:, 0, 7:9]
Run Code Online (Sandbox Code Playgroud)
这提出了一个问题:还有什么可能吗?(想象一下可能性!)
根据此答案和一些试验(见下文),如果有一个逗号,Python的构建物,其中的一些可以是切片对象的元组,并且(作为传递key)到__getitem__(self, key)的a.
该文档__getitem__(..)未指定此行为.有没有我错过的官方文件?特别是,这种语法如何向后兼容?(在网上搜索"python扩展切片表示法"给出了"Python 2.3中的新功能",但没有提到它.)
>>> class Test(object):
... def __getitem__(self, x):
... print repr(x)
>>> t = Test()
Run Code Online (Sandbox Code Playgroud)
首先,Python发现可以识别多切片的东西:
>>> t[1]
1
>>> t['a':,]
(slice('a', None, None),)
>>> t['a':7:('b','c'),]
(slice('a', 7, ('b', 'c')),)
# Seems like it can be arbitrary objects?
>>> t[(t,t):[4,5]]
slice((<__main__.Test object at 0x07D04950>, <__main__.Test object at 0x07D04950>), [4, 5], None)
>>> t[::]
slice(None, None, None)
>>> t[:] …Run Code Online (Sandbox Code Playgroud) matlab ×2
syntax ×2
cell-array ×1
for-loop ×1
java ×1
jcomponent ×1
key-bindings ×1
keylistener ×1
loops ×1
python ×1
slice ×1
swing ×1