请注意以下R会话。
func imageArrayFromUserList(userList: [PFUser]) -> [UIImage] {
var arrayToReturn: [UIImage] = []
for user in userList {
let objectID = user.objectId
let query = PFUser.query()
//let query = PFQuery(className: "_User")
query!.whereKey("objectId", equalTo: objectID!)
//query?.limit = 1
query!.findObjectsInBackgroundWithBlock({ (results: [AnyObject]?, error: NSError?) -> Void in
if error != nil{// This never prints anything to console
println(error)
}
if let results = results as? [PFObject] {
for object in results {
let userPicture = object["image"] as! PFFile
userPicture.getDataInBackgroundWithBlock {
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
if let imageData = imageData {
let image = UIImage(data:imageData)
arrayToReturn.append(image!)
}
}
}
}
}
})
}
return arrayToReturn
}//end of imageArrayFromUserList method
这里m3是一个2x4矩阵,因此它可以乘以m2 [,2](m2的第二列)非常合理,因为m2 [,2]是一个4x1矩阵(因此它们兼容乘法) 。现在请注意,z3也是一个4x1矩阵(如m2 [,2])。
我想知道为什么他们的演示文稿(m2 [,2]和z)是不同的(我的意思是当我输入z3时我看到的输出,当我在R提示符下输入m2 [,2]时) 。我发现这种差异很奇怪。我喜欢z3的演示,我不喜欢m2 [,2]的演示。
答案 0 :(得分:3)
如果您将子集分配到1维,则R只需将其转换为向量。 (编辑:它只是简化了。即,"返回到可能的最低维度")
如果您不希望发生这种情况,请执行m2[,2,drop=FALSE]
作为旁注,(1:4)%*%m2
和m2%*%(1:3)
一样有效。所以,即使它删除了矩阵表示,它也会很好地完成数学工作。