matlab中矩阵随机取几个元素赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中矩阵随机取几个元素赋值相关的知识,希望对你有一定的参考价值。

比如10x10矩阵,随机取出十个元素并赋予0-9数字

    首先确定矩阵的行数和列数

    用rand函数生成随机数,与行数相乘取整得m;再次生成随机数,与列数相乘取整得n

    对m行n列赋值,如果要求所赋的值也是随机的,那就用rand生成

    如此循环,如果取的元素个数要求随机,那么就用rand生成一个数与矩阵总数相乘得循环次数

参考技术A a=rand(10,10)
b=a;
ind1=randperm(10);
ind2=randperm(10);
for i=1:10
b(ind1(i),ind2(i))=i-1;
end
b本回答被提问者采纳

python 怎么给矩阵里的每一个元素赋值

想让矩阵的每一个元素都有70%的几率为1, 但是输出后会变成这种情况
space?5

percent?50

0 0 0 1 0

0 0 0 1 0

0 0 0 1 0

0 0 0 1 0

0 0 0 1 0
请问源代码该怎么修改才好
import random
n = input("space?")
percent = input("percent?")
earth = [[0]*n]*n
def showBoard():
for i in range(n):
for j in range(n):
print earth[i][j] ,
print
def treeSet():
for i in range(n):
for j in range(n):
per = random.uniform(0,1) * 100
if per >= 70:
earth[i][j] = 1
else:
earth[i][j] = 0
treeSet()
showBoard()

方法一:

1、如图所示是我们创建了一个矩阵,一般我们的操作过程中有矩阵的话那么在工作区就会出现,如图所示,我们可以双击工作区的需要更改的矩阵。

2、然后在弹出的表格中选中需要更改的单个矩阵元素,进行更改即可。

方法二:

1、我们也可以通过语句来实现对矩阵单个元素的赋值操作。我们可以通过下面的语句:

a(1,2)=100

如图所示就可以看到我们矩阵的该位置元素数值已经更改了。

2、假如我们输入的行数和列数大于原来的矩阵会出现什么现象呢?我们可以试试,我们输入a(5,6)=100,来看看结果。

3、我们可以看到矩阵会自动扩展成5行6列的一个新的矩阵,其余为赋值的区域会自动为0,我们也可以通过这个方法来对矩阵进行扩展。

参考技术A

我也研究了很久,终于发现问题了.

函数没错.

错在定义 earth 的时候.

earth = [[0]*n]*n  # does not work
earth = [[0,0,0],[0,0,0],[0,0,0]]  # work

 

如果想 python 当中应用矩阵运算.

你就需要了解 numpy 这个库.

你可以百度一下 "numpy 莫烦", 莫烦教程有一系列的 numpy 教学教程.

本回答被提问者和网友采纳
参考技术B 答非所问,问的是Python 给的确实MATLAB,还推送到百度第一条,每次都误导人!

以上是关于matlab中矩阵随机取几个元素赋值的主要内容,如果未能解决你的问题,请参考以下文章

C++ 矩阵类 自赋值问题

matlab中如何给一个矩阵中的某几个特定位置赋值

matlab 二维矩阵for循环逐行赋值

matlab怎样给第一个矩阵1号位置赋值,第二个矩阵2号位置赋值?

matlab中已知一矩阵,如何将其中的已知的元素打乱顺序进行随机排列得到新的矩阵,如:

怎样创建元素为结构体变量的matlab矩阵