【发布时间】:2019-08-12 05:07:48
【问题描述】:
我正在尝试在 matlab 中索引(而不是获取)矩阵的对角线。
假设我有一个矩阵“M”,即 n × n。然后我想获得矩阵“M”中所有可能的对角线的所有索引。
我知道中心对角线的索引是
M(1:(n+1):end)
并且它上面的所有以下对角线都被索引为:
M((1+1*n):(n+1):end)
M((1+2*n):(n+1):end)...
M((1+n*n):(n+1):end)
现在我还想得到下面的对角线。但是,我终其一生都无法弄清楚该怎么做。
可重现的例子:
rng(1); % set seed
n = 4;
M = rand(n);
屈服
M =
0.562408 0.947364 0.655088 0.181702
0.960604 0.268834 0.469042 0.089167
0.578719 0.657845 0.516215 0.419000
0.226410 0.601666 0.169212 0.378740
我想索引下对角线的地方,例如次对角线:
0.960604 0.657845 0.169212
也就是说,我不需要通过例如得到对角线diags 函数,但访问索引(因为我最终想用对角线替换矩阵条目)。
【问题讨论】: