2013-03-28 193 views
0

我很有兴趣将矩阵D的对角线替换为1,2,3,4。 这是矩阵D替换矩阵的对角线

A=[1,2,3,4,2,3,4,5; 3,4,5,6,4,5,6,7]; 
D=[A;A]; 
D=[D D]; % size of matrix [4x16] % 
+2

什么ü通过对角线是什么意思? D是一个非方矩阵.. – Kishore 2013-03-28 09:05:46

+0

@Kishore,[主对角线](http://en.wikipedia.org/wiki/Main_diagonal)也定义为非平方矩阵。 – 2013-03-28 09:15:08

回答

2

设置主对角线开始1和递增1的整数:

D(eye(4)==1) = 1:4 

或者来概括它:

n = min(size(D)); 
D(eye(n)==1) = 1:n; 

注意到这里==1用于将单位矩阵eye(n)的输出转换为逻辑类型。

编辑:

这只是一个猜测你的意思是所有的对角线什么,但这里有云:

n = size(D,1); 
m = size(D,2); 
I = repmat(eye(min([n,m])), ceil(n/m), ceil(m/n)); 
I = I(1:n, 1:m)==1 
d = repmat(1:min([n,m]), 1, max([ceil(n/m), ceil(m/n)])); 
d = d(1:max(m,n)); 
D(I) = d 
+0

你好,这个改变矩阵只有1个对角线,我想改变矩阵中的所有对角线。 – cenging 2013-03-28 09:39:00

+0

还有哪些对角线?请提供一个手动计算的示例并将其添加到您的问题中(编辑您的原始问题),以便我们可以看到您的意思。 – Dan 2013-03-28 09:55:20

+0

解决了,谢谢。我非常感谢你的帮助。 – cenging 2013-03-28 11:34:25