声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1586|回复: 6

[编程技巧] 求助:编一个对角阵

[复制链接]
发表于 2012-9-10 10:38 | 显示全部楼层 |阅读模式

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

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

x
编一个对角阵,对角元素是【1 0 1 0 1 0.....】一共是20个1,二十个0.。有没有简便的编法?多谢各位
回复
分享到:

使用道具 举报

发表于 2012-9-10 10:47 | 显示全部楼层
没懂什么意思,直接敲命令进去,一个循环就行。  
for i=1:40
     if mod(i,2)==1
        A(i,i)=1;
   else
        A(i,i)=0;
   end
end

评分

1

查看全部评分

发表于 2012-9-10 10:51 | 显示全部楼层
前面再加行A=zeros(40,40);
 楼主| 发表于 2012-9-10 11:06 | 显示全部楼层
回复 2 # mayuanzhuo 的帖子

就是一个对角阵,对角元素是1和0间隔的那种形式,如果用diag就必须一个一个敲进去,得敲40个数,想询问有没有其他的命令之类的可以处理这种问题
发表于 2012-9-10 11:09 | 显示全部楼层
回复 4 # guai乖Maggie 的帖子

像我刚才那种循环不行吗,具体其他命令我不知道。你需要n维的,把40换成n。
 楼主| 发表于 2012-9-10 11:14 | 显示全部楼层
回复 5 # mayuanzhuo 的帖子

完全可以!多谢啦。我是怕你没明白我的意思,所以又多解释了一下
发表于 2012-9-10 22:52 | 显示全部楼层

个人习惯
  1. aa=[ones(1,20);zeros(1,20)]; aaa=aa(:); bb=diag(aaa);
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 03:56 , Processed in 0.052470 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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