如何用MATLAB生成一个主对角线为1,其他值相同的toeplitz矩阵

如题所述

比如n×n矩阵,其他值是b=8

n=6;   %6×6矩阵
b=8;
a=b*ones(n,n)./(diag((b-1)*ones(n,1))+ones(n,n))


或者你也可以

n=6;
b=8
toeplitz([1,b*ones(1,n-1)])


温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-08
%% 方法一:
n= 6;   % 方阵维数
a= 3;   % 主对角线上的元素的值为3
b= 8;   % 其它元素值均为8
c= a*eye(n)+ b*(ones(n)-eye(n)); % a*eye(n)产生主对角线上的元素,
                                 % b*(ones(n)-eye(n))产生其它元素
%运行结果为
c =

     3     8     8     8     8     8
     8     3     8     8     8     8
     8     8     3     8     8     8
     8     8     8     3     8     8
     8     8     8     8     3     8
     8     8     8     8     8     3
%% 方法二:
n= 6;   % 方阵维数
a= 3;   % 主对角线上的元素的值为3
b= 8;   % 其它元素值均为8
c= b*ones(6);
c(logical(eye(size(c))))=a;
% 运行结果为
c =

     3     8     8     8     8     8
     8     3     8     8     8     8
     8     8     3     8     8     8
     8     8     8     3     8     8
     8     8     8     8     3     8
     8     8     8     8     8     3

第2个回答  2016-11-14
简单 ,比如你生成7阶的矩阵 其他元素都是5 主对角线是 1
你用如下语句
A=5*ones(7)-(5-1)*eye(7);
相似回答