声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1198|回复: 4

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

[复制链接]
发表于 2006-4-3 22:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2006-4-4 09:42 | 显示全部楼层
  1. a=ones(13);
  2. b=diag(diag(a))*0+triu(a,1)+tril(a,-1)*3
复制代码
发表于 2006-4-4 10:05 | 显示全部楼层
这样子阿?
那如果每个元素的值都是有规律的变化的呢?难道要用for循环辅值?
发表于 2006-4-4 10:10 | 显示全部楼层
diag(a)*0不就可以了么?
为什么前面再加个diag?
弱问..
谢谢
发表于 2006-4-4 10:22 | 显示全部楼层
diag(a)是一个向量,diag(diag(a))是表示以diag(a)为对角元其他元素为0的矩阵
这个例子里因为要的是对角为0,其实只要b=triu(a,1)+tril(a,-1)*3就可以了
另外tlynette100我个人觉得应该是看情况采取对应的措施吧,这种构造矩阵的根据不同人的需要千变万化
没有什么固定的做法吧?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-4 23:31 , Processed in 0.056197 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表