假设:
A
我尝试选择所有矩阵id
行,如果第一列的值至少出现在A =
1 22 33
2 44 55
2 66 77
一次,而不使用循环。
因此,从:
开始2 44 55
2 66 77
在这个例子中我想得到以下内容:
# Load your RSA pub and private keys
pubKey = jwk.JWK().from_pyca(serializedPublicKey)
privateKey = jwk.JWK().from_pyca(serializedPrivateKey)
# your JWT claims go here
claims = {
# JWT claims in JSON format
}
# sign the JWT
# specify algorithm needed for JWS
header = {
u'alg' : 'RS256',
'customSigHeader':'customHeaderContent'
}
# generate JWT
T = jwt.JWT(header, claims)
# sign the JWT with a private key
T.make_signed_token(privateKey)
# serialize it
signed_token = T.serialize(compact=True)
# JWE algorithm in the header
eprot = {
'alg': "RSA-OAEP",
'enc': "A128CBC-HS256",
'customEncHeader':'customHeaderContent'
}
E = jwe.JWE(signed_token, json_encode(eprot))
# encrypt with a public key
E.add_recipient(pubKey)#
# serialize it
encrypted_signed_token = E.serialize(compact=True)
更简单的方法是什么? 非常感谢。
答案 0 :(得分:4)
使用ismember
创建一个选择行的逻辑索引:
A(ismember(A(:,1), id),:)
或者,您可以使用any
和bsxfun(@eq, ...)
代替ismember
:
A(any(bsxfun(@eq, A(:,1).', id(:)), 1), :)
或者,从Matlab版本R2016b开始,由于implicit singleton expansion,您可以仅bsxfun(@eq, ...)
替换==
:
A(any(A(:,1).'==id(:), 1), :)