繁体   English   中英

如何在 MatLab 中创建一个对角线线性递减的对称矩阵?

[英]How do I create a symmetric matrix with a linearly decreasing diagonal in MatLab?

我正在尝试创建一个对称的 n x n 矩阵,其中对称线从 n 线性减少到 1。

例如 5 x 5 将是:

5 4 3 2 1 
4 4 3 2 1
3 3 3 2 1
2 2 2 2 1
1 1 1 1 1 

谢谢

使用implicit expansionmin function 将从行向量和列向量的组合生成一个方阵,因此可以通过以下方式获得结果:

N = 5;
A = min( (N:-1:1).', (N:-1:1) );

您可以使用:

numRows = 5;

mI = repmat((1:numRows)', 1, numRows);
mJ = repmat((1:numRows), numRows, 1);

mA = flip(flip(min(mI, mJ), 1), 2)

给出的答案是:

mA =

     5     4     3     2     1
     4     4     3     2     1
     3     3     3     2     1
     2     2     2     2     1
     1     1     1     1     1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM