声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1102|回复: 8

[编程技巧] 请教如何产生这样一个矩阵?

[复制链接]
发表于 2007-9-21 22:14 | 显示全部楼层 |阅读模式

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

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

x
只有对角线和次对角线值不为0

其他都为0

希望大家帮忙

谢谢。
回复
分享到:

使用道具 举报

发表于 2007-9-21 22:21 | 显示全部楼层
a = [1 2 3 4];
b1 = diag(a);
b2 = rot90(b1);
c = b1+b2;

其余的参数自己改改就行。
有更简单的请楼下发言。

评分

1

查看全部评分

 楼主| 发表于 2007-9-21 22:28 | 显示全部楼层
A=[a   0   0   
     -r   a   0   
     0   -r   a ]
其实我是想问这个的:(
发表于 2007-9-22 07:07 | 显示全部楼层
据我所知,“次对角线”指的并不是你给出的这种形式。
你想要的可以参考以下代码:
--------------------------
a = [2 1
2 1
2 1];
b = full(spdiags(a, [-1 0], 3, 3));
 楼主| 发表于 2007-9-22 09:07 | 显示全部楼层

回复 #4 不化顽石 的帖子

谢谢你提醒
不过我想假如a矩阵是字符矩阵
怎么表示呢?
就像我说的那个a。
发表于 2007-9-22 09:51 | 显示全部楼层

回复 #5 gattuso 的帖子

>>  syms a r
>> A=diag(a*ones(1,3))

A =

[ a, 0, 0]
[ 0, a, 0]
[ 0, 0, a]


>> A(2,1)=-r;A(3,2)=-r;
>> A

A =

[  a,  0,  0]
[ -r,  a,  0]
[  0, -r,  a]
如果矩阵较大,次对角线用循环就解决了

评分

1

查看全部评分

 楼主| 发表于 2007-9-22 09:57 | 显示全部楼层

回复 #6 花如月 的帖子

谢谢
我明白了
发表于 2007-9-22 10:40 | 显示全部楼层
发表于 2007-9-22 11:18 | 显示全部楼层
syms a r;
N=ones(1,4);
M=ones(1,3);
A=diag(N);
B=diag(M,-1);
C=a.*A+r.*B

C =

[ a, 0, 0, 0]
[ r, a, 0, 0]
[ 0, r, a, 0]
[ 0, 0, r, a]

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-14 04:25 , Processed in 0.063239 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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