matlab 怎样生成一个N*N的对称矩阵,要主对角线的元素为0,其他随意?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 怎样生成一个N*N的对称矩阵,要主对角线的元素为0,其他随意?相关的知识,希望对你有一定的参考价值。
参考技术A 假设n=30.n=30;
a=zeros(n);
for i=1:n
for j=1:n
if (i~=j)
a(i,j)=rand;
end
end
end
矩阵a就是你要的矩阵追问
谢谢,不过我需要a(i,j)=a(j,i),再加上对角线为0
参考技术B n=10;a=rand(n,n);
a=(a+a')/2;
for i=1:n
a(i,i)=0;
end
a本回答被提问者采纳
python怎样生成一个随机矩阵
import random #导入随机数模块m=10
n=10
matrix = [[0 for i in range(m)] for i in range(n)] #定义数组
for row in range(0,m):
for col in range(0,n):
matrix[row].append(random.randint(0,101)) #赋值
for row in range(0,m):
print matrix[row]#打印
结果
参考技术Afrom numpy import random
randArray = random.random(size=(2,4))
#输出
#array([[0.93848018,0.42005976,0.81470729,0.98797783],[0.12242703,0.42756378,0.59705163,0.36619101]])
random函数接收需要生成随机矩阵的形状的元组作为唯一参数。上面的代码将会返回一个两行四列的随机矩阵,随机数的值位于0到1之间,矩阵是numpy.array类型。除了random函数外,还有生成整数随机矩阵的函数randint。
from numpy import random
random.randint(1,100,size=(3,3))
#输出
#array([[74,76,46],[90,16,8],[21,41,31]])本回答被提问者采纳 参考技术B numpy.random包可以实现这一功能。numpy包是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多,同时该结构也可以用来表示矩阵。
from numpy import random
randArray = random.random(size=(2,4))
random函数接收需要生成随机矩阵的形状的元组作为唯一参数。上面的代码将会返回一个两行四列的随机矩阵,随机数的值位于0到1之间,矩阵是numpy.array类型。除了random函数外,还有生成整数随机矩阵的函数randint等等。
以上是关于matlab 怎样生成一个N*N的对称矩阵,要主对角线的元素为0,其他随意?的主要内容,如果未能解决你的问题,请参考以下文章