matlab如何定義確定1的個數的隨機01矩陣

2021-05-21 22:18:25 字數 2634 閱讀 3353

1樓:落水神

a=rand(100,50); %產生隨機矩陣b=reshape(a,[1,numel(a)]); %重新排列矩陣c=sort(b); %對矩陣進行升序排列d=c(20); %取倒數第20小的數e=a<=d %矩陣中若元素小於等於d,即為真即為1,否為0

e為你所求矩陣.

其了怪了,測試下,竟然執行速度比他快;

l1=clock;

tt1=cputime;

for i=1:1000

a=rand(100,50);

b=reshape(a,[1,numel(a)]);

c=sort(b);

d=c(20);

e=a<=d ;

endetime(clock,l1)

cputime-tt1

l2=clock;

tt2=cputime;

for i=1:1000

a=zeros(100,50);

idx=randperm(100*50);

a(idx(1:20))=1;

endetime(clock,l2)

cputime-tt2

結果:ans =

0.875000000000000

ans =

0.906250000000000

ans =

0.937000000000001

ans =

0.953125000000000

2樓:東吳小肥羊

方法如下:

a=zeros(100,50);

idx=randperm(100*50);

a(idx(1:20))=1;

如此即可。

3樓:匿名使用者

a=zeros(100,50);

idx=randperm(100*50);

a(idx(1:20))=1;

如何用matlab生成只含0,1值的隨機矩陣,要求限制1的數量

4樓:匿名使用者

%選擇函式

function a=xuanze(m,n)a=zeros();

for i=1:m

for j=1:n

a(i,j)=randperm(2,1)-1;

endend

end%測試抄函式

m=10;

n=5;

a=xuanze(m,n);

shu=sum(a(:));%判斷

bai1的數du量

while(shu>=20)

a=xuanze(m,n);

shu=sum(a(:));

enddisp('得到的隨機zhi

矩陣:');

adisp(['其中1的個數:dao']);shu

matlab 怎樣隨機訪問一個矩陣中的數

5樓:匿名使用者

參考例項如下:

>> a=[3 8 6 4 9];

>> b=randint(1,1,[1 5])%%a為矩陣,利用randint隨機產生其矩陣序號,然後代入序號,即可得到隨機抽取的元素;

b =5

>> a(b)

ans =9

6樓:森成鞠雨

先把矩陣中的那個元素找到

,如i(i,j)=a,a就是你想賦的值

如果你想給整個矩陣都隨機賦值

就是rand(i)

7樓:匿名使用者

a=zeros(4,5);

[m,n]=size(a);

q=randperm(m);%產生1-m的隨機排列p=randperm(n);%同上

a(q(1),p(2))%就隨便你用了

8樓:匿名使用者

假設a為矩陣,

n=size(a);

n=ceil(n*rand);

a(n) 隨機訪問矩陣第n個數

9樓:匿名使用者

比如所矩陣是a,6*6

idx=randperm(36);

a(idx)

matlab怎麼定義一個行數和列數確定的空矩陣?

10樓:本寶寶有人疼

在定義空矩陣的時候,就要用到zero函式進行定義了,zero定義是c語言上常用的定義。

空矩陣沒有大小,你往裡面裝多少就是多少。

如:>> m=m =

>> a=zeros(3);

>> m=a

m =0     0     0

0     0     0

0     0     0

zero定義的意義在於建立一個可以任我們新增東西的內容矩陣,當然我們要提前定義矩陣的大小。

11樓:束秋酈綺山

空矩陣沒有大小,你往裡面裝多少就是多少。

如:>>m=m=

>>a=zeros(3);

>>m=a

m=000

000000

matlab程式中如何在m檔案中定義m n級矩陣

a zeros m,n 就是一個全零的mxn的矩陣了 a ones m,n 就是一個全1的mxn矩陣。a rand m,n 就是一個隨機數的mxn矩陣還有很多專 如果你想要其他屬矩陣,可以用這幾個函式組合一下。比如我要全部為2.5的矩陣 a 2.5 ones m,n a zeros m,n 就是一個...

如何用matlab繪出函式Z1sqrt1x

clear all clc x,y meshgrid 0 0.1 1,0 0.1 1 z 1.sqrt 1 x bai2 y.2 1.sqrt 1 x 2 y.2 surfc x,y,z 結果見下圖。另外,三維圖類du型有很多,zhi上面的surfc可以換成plot3等等dao。最後建議不要用這回麼...

matlab已知三角形頂點座標,如何確定三角形內的點座標的

如果說是範圍的bai話應該是滿足du 與三角形三條邊直zhi線方程有關的不等式組dao專a x1,y1 b x2,y2 c x3,y3 組成三角形屬想知道某點 x,y 是否在三角型裡面 可以用matlab函式 in on inpolygon x,y,x1 x2 x3 y1 y2 y3 返回的in和o...