matlab中矩陣隨機取幾個元素賦值

2021-04-13 01:51:10 字數 5441 閱讀 6208

1樓:12路的停留

首先確定矩陣的行數和列數

用rand函式生成隨機數,與行數相乘取整得m;再次版生成隨機數,與列數相乘取整得n

對權m行n列賦值,如果要求所賦的值也是隨機的,那就用rand生成如此迴圈,如果取的元素個數要求隨機,那麼就用rand生成一個數與矩陣總數相乘得迴圈次數

2樓:匿名使用者

a=rand(10,10)

b=a;

ind1=randperm(10);

ind2=randperm(10);

for i=1:10

b(ind1(i),ind2(i))=i-1;

endb

matlab中從已知矩陣中隨機抽取5個元素如何實現.

3樓:用著追她

1、寫上註釋內容。

#怎樣從陣列中隨機抽取一個元素。

2、新建一個函式chouqu_array。

3、新建一個陣列。$shuzu3=array("litian","hunlun","xieyuxin","xiezi")。

4、使用array_rand函式來隨機抽取陣列中的一個元素。

5、將結果列印出來。print_r($chouqu);。

6、呼叫這個函式。chouqu_array();。

7、開啟瀏覽器進行測試,返回的是陣列的鍵值。

4樓:可靠的

可以用隨機數發生器 :)

具體如下:

data=randn(1000,1); %需要隨機提取資料的矩陣randnum=randperm(length(data)); %隨機產生矩陣位置

outdata=data(randnum(1:100)); %可隨機從data中提取100個資料

matlab 從陣列中隨機取幾個下標不同的元素

5樓:匿名使用者

原陣列a,假設是一維的。取n個元素。

rand=randperm(length(a));

index=rand(1:n);

index=sort(index);

b=a(index);

b就是你要的。如果不要求下標按順序排列,將第三行(index=sort(index);)去掉。

6樓:天雲一號

在matlab中,可以用rand函式來取隨機值,由於下標為整數,所以用randi函式取正整數隨機值。其具體實現過程為:

% a為陣列

% n為隨機取值的個數

% out為取出的元素陣列

function out = fun(a, n)[row, col] = size(a);

if(n > row*col)

error("n超出陣列元素個數");

return;

endx0 = 1 : row;  % 下標陣列y0 = 1 : col;  % 下標陣列for i = 1 : n

x = randi(row,1);  % 隨機取下標值y = randi(col,1);  % 隨機取下標值% 如果隨機取的下標在下標陣列中,那麼沒重複,將其對應元素取出if(sum(repmat(x,1,row)==x0)>0 || sum(repmat(x,1,row)==x0)>0)

out(i) = a[x, y];

endx0(x) = ; % 刪除剛才取出元素所對應的下標y0(y) = ; % 刪除剛才取出元素所對應的下標end

7樓:稅鶯韻楚好

如果這n個二維陣列維數相等,那就簡單,做一個陣列的陣列alls把這n個資料都做成陣列,當成行放進去,取的時候計算一下行就行了,但是必須sn都是同維數矩陣.s1=

[1,2;3,4];

alls

=[s1];

s2=[5,6;7,8];

alls

=[alls;

s2];s3=

[9,10;11,12];

alls

=[alls;

s3];

取s2,這樣,先根據2計算行下標,

(2-1)*size(s2,1)+1:2*size(s2,1)列全取就是:

alls((2-1)*size(s2,1)+1:2*size(s2,1),

:);**********====

同理,去sn就是

alls((n-1)*size(sn,1)+1:n*size(sn,1),:);

matlab中如何任意選取一個矩陣的任意幾行幾列

8樓:匿名使用者

1、首先在matlab命令列視窗中輸入a=[1 2 3;2 3 4;3 4 5;4 5 6],按回車鍵,新建一個4行4列的新

矩陣。2、通過a(:,1:2)提取矩陣的1,2列,可以回根據需要提答

取某幾列。

3、通過a(2:4,:)提取矩陣的2,3,4行,可以根據需要提取某幾行。

4、還可以通過a(:,[1 3])提取矩陣的第1,3列,可以按需要提取不連續的幾列。

5、通過a([1 3 4],:)提取矩陣的第1,3,4行,可以按需要提取不連續的幾行,就完成了。

6、也可以通過a([1 4],[1 3])格式提取想要的矩陣元素。

9樓:衝浪**優化

通過a函式實bai現,比du如:

提取40-82行,列數是zhi1-85 。

dao x=a(40:82,1:85)。

data函式說明:回

提取1-10000行,第1列全答部

x=data(1:10000,1)。

10樓:陽光的

假設有矩陣a a(1,:)表示第一行的元素 a(:,1)表示第一列 依次類推

11樓:匿名使用者

a =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9>> b=a(3,:) %第三行baib =4 6 13 20 22>> c=a(:,3) %第三列duc =1713

1925

選取其zhi

他行dao列方版

法類權似

請問:matlab中怎麼從一個現有的矩陣中隨機抽取一個數?急啊!!!謝謝

12樓:酷呆愛死呆

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

>> b=randint(1,1,[1 5])%%a為矩陣,來利用randint隨機產生其自矩陣序號,然bai後代入序

du號,即可得zhi到隨機抽取的元

dao素

b =5

>> a(b)

ans =9

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

13樓:匿名使用者

參考例項如下:

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

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

b =5

>> a(b)

ans =9

14樓:森成鞠雨

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

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

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

就是rand(i)

15樓:匿名使用者

a=zeros(4,5);

[m,n]=size(a);

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

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

16樓:匿名使用者

假設a為矩陣,

n=size(a);

n=ceil(n*rand);

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

17樓:匿名使用者

比如所矩陣是a,6*6

idx=randperm(36);

a(idx)

matlab中如何給一個矩陣中的某幾個特定位置賦值

18樓:大野瘦子

用sub2ind

>> a=zeros(5); i = [2;3;4]; j = [1;4;2];

>> a(sub2ind(size(a), i, j))=1

a =0 0 0 0 0

1 0 0 0 0

0 0 0 1 0

0 1 0 0 0

0 0 0 0 0

注意事項

matlab書寫表示式的規則與「手寫算式」差不多相同。

如果一個指令過長可以在結尾加上...(代表此行指 令與下一行連續),例如

?3*...

6ans =

18在matlab中,可通過如下方式給矩陣賦值:

a = zeros(3,4);   % 初始化一個3*4的矩陣

>>a =

0 0 0 0

0 0 0 0

0 0 0 0

a(1,2) = 5;   % 將矩陣a的第1行第2列個元素賦值為5>>a =

0 5 0 0

0 0 0 0

0 0 0 0 a(2) = 6;   % 將矩陣a的第2個元素(按列開始計算)賦值為6

>>a =

0 5 0 0

6 0 0 0

0 0 0 0 a(3,:) = [1 2 3 4];   % 將矩陣a的第3行賦值為[1 2 3 4]

>>a =

0 5 0 0

6 0 0 0

1 2 3 4

19樓:du瓶邪

比如:k1=[1,2;3,4];

k=zeros(4);

把k1的值賦在k的特定位置後,獲得

k=[0,1,0,2;

0,0,0,0;

0,3,0,4;

0,0,0,0;]

k([1 3],[2 4]) = k1

20樓:匿名使用者

mark一下,等答案

21樓:

直接賦值不行嗎?

a(2,1)=1;a(3,4)=1;a(4,2)=1;

22樓:匿名使用者

a(size(a,1)*(j-1)+i)=1

23樓:匿名使用者

為什麼不能用for。。。。。

鑽在這種無關痛癢的小技巧上有什麼意思啊。。。。

matlab隨機函式怎麼取,matlab中怎樣隨機從一組資料中取一個數

如果是要要均勻分佈,可以使用語句rand 1 0.8 0.1 matlab中的rand函式 用於產生隨機數 均勻分佈的隨機數或矩陣 語法y rand n y rand m,n y rand m n y rand m,n,p,y rand m n p.y rand size a rand s rand...

matlab中怎樣把矩陣中的0元素替換成

a a 0 1 好吧,這 bai是很笨的方法。如,du假設呢,你zhi這個矩陣是a daon m clc,clear a 你想變內換的那個矩陣n size a,1 m size a,2 i 1 j 1 for i 1 n for j 1 m if a i,j 0 a i,j 1 endend end...

matlab中如何將多個矩陣儲存到同矩陣中

將a,b,c合併成d,然後再一次性儲存為txt.d a b c 讀入到txt建議用dlmwrite函式 例如 有100個同維數的矩陣,使其從左到右的順序儲存到同一個txt檔案中。example a,b,c,d是25 3的矩陣 儲存在txt檔案中後的形式是 a b c d 程式設計了25 12的矩陣。...