R矩阵 - 行向量 - 列向量 - 不同输出 - 混淆

时间:2015-08-02 22:24:02

标签: r

请注意以下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]的演示。

1 个答案:

答案 0 :(得分:3)

如果您将子集分配到1维,则R只需将其转换为向量。 (编辑:它只是简化了。即,"返回到可能的最低维度")

如果您不希望发生这种情况,请执行m2[,2,drop=FALSE]

作为旁注,(1:4)%*%m2m2%*%(1:3)一样有效。所以,即使它删除了矩阵表示,它也会很好地完成数学工作。