我有一个矢量:
A = [1 2 3 4 5];
我想找到A(1)和其余指数之间的区别:
A(1) = 1; 1 - A = [0 -1 -2 -3 -4]
然后我想继续A(2)
直到向量结束。所以我在彼此的所有点之间存在差异。
目前我使用循环,但它非常耗时。如何使用矢量化技术来提高性能?
我正在使用MATLAB 2016a
答案 0 :(得分:7)
如果您使用2016a或更早版本,则表示您想使用bsxfun:
func jump() {
Football?.texture = SKTexture(imageNamed: "Football")
Football?.physicsBody?.applyImpulse(CGVector(dx: 100, dy: 2000))
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
for t in touches { self.touchUp(atPoint: t.location(in: self)) }
}
func touchUp(atPoint pos: CGPoint) {
Football?.texture = SKTexture(imageNamed: "Football")
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
从2016b(或Octave)开始,您可以利用隐式扩展并取消>> A = [1 2 3 4 5];
>> bsxfun(@minus, A.', A)
ans =
0 -1 -2 -3 -4
1 0 -1 -2 -3
2 1 0 -1 -2
3 2 1 0 -1
4 3 2 1 0
:
bsxfun