如何使用 MATLAB 创建 k 阶矩阵?
我希望创建一个等级为 k 的矩阵。 矩阵的维度为mx n
。输入k
满足条件k <<分钟(m,n)。
Im looking to create a matrix of rank k
.
The dimension of the matrix is m x n
. The input k
satisfies that condition that k < min(m,n)
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
目前还不太清楚您的目标是什么。
但为了从矩阵
A
(至少具有rank
)创建具有特定秩k
的矩阵B
k
),您可能想使用svd
并继续如下操作:It's not really so clear what you are aiming for.
But in order to create a matrix
B
with specific rankk
, from a matrixA
(withrank
at leastk
), you may like to utilizesvd
and proceed like:嗯,一个简单的方法是生成一个矩阵,如下所示:
即单位矩阵的 k 列,然后重复最后一列 nk 次(或 mk< /em> 次,取决于方向)。
Well, a trivial method is to produce a matrix that looks like:
i.e. k columns of the identity matrix, then repeat the last column n-k times (or m-k times, depending on orientation).
秩为 1 的矩阵可以通过两个向量的外积来创建,例如:
将 k 个向量加在一起,您将得到一个秩为 k 的矩阵。像这样:
A matrix of rank 1 can be created by the outer product of two vectors, for example:
Add together k of these and you will have a matrix of rank k. Like this: