yatou_w 发表于 2006-4-3 22:12

[求助]请问如何表达一个"分段"矩阵??

如果要表示一个13*13的矩阵D,且:
当i<j时,d(i,j)=1;
当i=j时,d(i,j)=0;
当i>j时,d(i,j)=3;
在matlab上如何表示呢?
谢谢各位大侠了.....

yqchenlolo 发表于 2006-4-4 09:42

a=ones(13);
b=diag(diag(a))*0+triu(a,1)+tril(a,-1)*3

lynette100 发表于 2006-4-4 10:05

这样子阿?
那如果每个元素的值都是有规律的变化的呢?难道要用for循环辅值?

cdwxg 发表于 2006-4-4 10:10

diag(a)*0不就可以了么?
为什么前面再加个diag?
弱问..
谢谢

yqchenlolo 发表于 2006-4-4 10:22

diag(a)是一个向量,diag(diag(a))是表示以diag(a)为对角元其他元素为0的矩阵
这个例子里因为要的是对角为0,其实只要b=triu(a,1)+tril(a,-1)*3就可以了
另外tlynette100我个人觉得应该是看情况采取对应的措施吧,这种构造矩阵的根据不同人的需要千变万化
没有什么固定的做法吧?
页: [1]
查看完整版本: [求助]请问如何表达一个"分段"矩阵??