guai乖Maggie 发表于 2012-9-10 10:38

求助:编一个对角阵

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

mayuanzhuo 发表于 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

mayuanzhuo 发表于 2012-9-10 10:51

前面再加行A=zeros(40,40);

guai乖Maggie 发表于 2012-9-10 11:06

回复 2 # mayuanzhuo 的帖子

就是一个对角阵,对角元素是1和0间隔的那种形式,如果用diag就必须一个一个敲进去,得敲40个数,想询问有没有其他的命令之类的可以处理这种问题

mayuanzhuo 发表于 2012-9-10 11:09

回复 4 # guai乖Maggie 的帖子

像我刚才那种循环不行吗,具体其他命令我不知道。你需要n维的,把40换成n。

guai乖Maggie 发表于 2012-9-10 11:14

回复 5 # mayuanzhuo 的帖子

完全可以!多谢啦。我是怕你没明白我的意思,所以又多解释了一下

ChaChing 发表于 2012-9-10 22:52

guai乖Maggie 发表于 2012-9-10 10:38 static/image/common/back.gif
编一个对角阵,对角元素是【1 0 1 0 1 0.....】一共是20个1,二十个0.。有没有简便的编法?多谢各位

个人习惯aa=; aaa=aa(:); bb=diag(aaa);
页: [1]
查看完整版本: 求助:编一个对角阵