作业帮 > 综合 > 作业

如何在matlab中输入一个有规律的大矩阵?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/06 14:51:15
如何在matlab中输入一个有规律的大矩阵?
一个n*n矩阵.图中给出的是n=4的情况,要求n是可以变的,怎么输入这个矩阵?
如何在matlab中输入一个有规律的大矩阵?
clear
clc
n=4;
N=4*n;% N x N 矩阵
L_2=-2*ones(1,N);
L10=repmat([1 1 1 0],1,n);
L10(end)=[];
L1=ones(1,N-4);
% 结果
L=diag(L1,-4)+diag(L10,-1)+diag(L_2);
L=L+L
再问: 貌似不对哦,你这里N=4*n. 如果n=5的话,N就是4*5=20了。而实际上,N=5的时候,应该是一个25*25的矩阵。n=5的话,那么T就是以5为周期,那么临近主对角线的0也是以5为周期拉~大神再考虑下咯?
再答: clear clc %以下根据你的要求调整 n=3; N=n*n;% N x N 矩阵 L_4=-2*ones(1,N); % -2 或者改成 -n/2 L10=mod(1:N-1,n)~=0; L1=ones(1,N-4); % N-4 或者改成 N-n ,和下面的一起改 % 结果 L=diag(L1,-4)+ ... % -4 或者改成 -n diag(L10,-1)+ ... diag(L_4); L=L+L'
再问: 大神怎么这么厉害,这么简单的几句就搞定了?能不能告诉我你的L_4,L10,L1是什么呀?diag函数是干嘛用的,好神奇!!告诉我大神!我膜拜你了。对了哦,还有个很困难的事情大神你还没有给我解决哦?就是T是Tij来表示的,可是方程中Tij写成了一个列向量。那么怎么把一个Tij的方阵表示为列向量呢?如果不解决这个问题的话,我无法在Tij的方格中绘制等高线的图。大神哪~救我啊
再答: diag是提取或者建立对角线矩阵L_4,L10,L1分别对应矩阵对称轴两侧的带形数据
位置分别为0、-1 (+1)、-4 (+4)

你用上面的矩阵解出向量T,即 : T=L\[ones(n,1);zeros(N-n,1)];然后把T变一下形即可: T=reshape(T,n,[]);
再问: 大神!真的是救星!实话跟你说把,我是刚来到美国读 机械的硕士,选课不小心选了这门课,我本来c语言就很差劲,matlab根本不会,老师布置这作业。。真是为难,上课听都听不懂,还是国内的大神亲切啊!!你能给我QQ吗,我以后向你学习,我会重谢你的!
再答: 我也是会一点,平时多练,多用上几次,就熟练了。