MATLAB中,怎樣把一組給定的資料隨機排列

2021-05-17 17:18:30 字數 5262 閱讀 1359

1樓:四舍**入

可以參考下面的**:

x=x(randperm(numel(x)))numel(x)獲得變數長度

randperm(n)產生長度為n的隨機數列 如:

randperm(4)

ans=

3 2 1 4

x(...) 取得x中相應元素產生新數列

2樓:

使用函式randperm()即可實現。

例:a = [7,6,3,9,10];      % 試驗矩陣【用於試驗,矩陣元素為待隨機排列的資料】

randindex_a = randperm(5);  % 生成1到5這幾個數的隨機排列

b = a(randindex_a);       % 隨機排列後的矩陣

每一行**執行結果:

>>a = [7,6,3,9,10]

a = 7 6 3 9 10

>>randindex_a = randperm(5)randindex_a =1 4 5 3 2>> b = a(randindex_a)b =7 9 10 3 6

擴充套件資料函式randperm()

1、語法格式:r = randperm(n)2、函式功能:將數字1:n進行隨機排列,排列結果儲存在行向量內3、例:輸入 randperm(3)

輸出 3 1 2

4、使用的方法:

利用索引值的隨機排列,生成所有元素的隨機排列

3樓:

x=x(randperm(numel(x)))numel(x)獲得變數長度

randperm(n)產生長度

為n的隨機數列 如:

randperm(4)

ans=

3 2 1 4

x(...) 取得x中相應元素產生新數列

4樓:匿名使用者

同意2樓的觀點

就是這樣,當然你也可以使用rand等生成其他隨機數

matlab中將一組數隨機排列,且每個數都要保證不在原來的位置上,該如何編寫程式?

5樓:匿名使用者

%% 生成 s 陣列

a = randperm(100);

a = a(1:4)

%% 隨機排序

%% 規則:所有元素均不在原位

m = length(a);

r = zeros(1,m);

id0 = randperm(m);

for p = 1:m-1

id = id0;

id(id==p) = ;

mid = randperm(length(id));

nid = id(mid(1));

r(p) = a(nid);

id0(id0==nid) = ;

end;

r(end) = a(id0);

ra =

72    64    39    43

r =43    39    72    64

matlab中如何將已知陣列中元素隨機排列?

6樓:匿名使用者

可以用這個語句進行隨機排列 x=x(randperm(numel(x)))

例如x=[1 2 3 4 7 9]

x=x(randperm(numel(x)))得到x=[9 1 4 3 2 7]

matlab中如何將已知陣列中元素隨機排列

7樓:匿名使用者

可以用這個語句進行隨機排列 x=x(randperm(numel(x)))

例如x=[1 2 3 4 7 9]

x=x(randperm(numel(x)))得到x=[9 1 4 3 2 7]

8樓:兔子和小強

給定陣列a,如下**可將其打亂:

a = a(randperm(numel(a)));

9樓:

最裡面的那個括號裡也要大寫x

matlab對於一組已有資料的多種排列組合

10樓:匿名使用者

a=1:10;%十個數,可以是其他不同的十個r=zeros(size(a));%每個位置出現的次數,初始化全部為零

for i=1:100

b=a(randperm(length(a)));%b就是a中10個數的隨機順序排列

ind=find(b==1);%找到1的位置,也可以是其他a中的數字r(ind)=r(ind)+1;%對應位置記錄加1個end

11樓:匿名使用者

x=x(randperm(numel(x)))numel(x)獲得變數長度

randperm(n)產生長度為n的隨機數列 如:

randperm(4)

ans=

3 2 1 4

x(...) 取得x中相應元素產生新數列

12樓:匿名使用者

% matrix_in是輸入矩陣

% matrix_out是輸出

矩陣function [matrix_out] = randmatrix(matrix_in)

[line column] = size(matrix_in);

matrix_out=zeros(line,column);

for i=1:line

seed=randperm(column);

matrix_out(i,:)= matrix_in(i,seed);

endend

13樓:匿名使用者

n = 100;

a = ;

for k = 1:n

a(k,:) = randperm(10);

end;

id = 1;

sum(a==id)

14樓:

是的 matlab程式核心是c語言 m檔案是ascii碼文字

15樓:段幹睿思彤瑗

a=randperm(10);

%a為1~10隨意打亂順序

b=[1,3,5,7,9];

%b為一組下標資料

c=a(b);

%將矩陣中對應下標的資料取出,結果存在c矩陣中(c為a矩陣的第[1,3,5,7,9]位)

d=sort(c);

%並對c矩陣由小到大排列,結果存在d矩陣中

matlab 哪個函式可以從一組資料中隨機抽取一部分出來

16樓:匿名使用者

假設你原來的資料存在變數a中

如果,你想從a中隨機抽取固定n個數

c=randperm(numel(a));

b=a(c(1:n));

b就是從a中隨機抽取的n個數(n應該小於a中元素的總個數)

17樓:釋奧凌茜

1.使用xlsread讀取進matlab

得到矩陣data

2.獲取列數

col= size(data,2);3.

隨機提取一列回資料randcol

=randi(col)

4.求標準差答

std(data(:,randcol ))

18樓:戴爾

matlab裡有現成的函du數 datasample, 呼叫方法:zhi

y = datasample(data,k,dim)例子:dao

data=randn(10,200); % 生成尺寸為10*200的資料回

y = datasample(data,5,1); %從data中隨機抽取5行資料

--------------

參考:頁連結答">網頁連結

如何在matlab中生成一組在規定範圍符合指定分佈的隨機數

19樓:匿名使用者

首先要確定需要的是什麼分佈的隨機數,也就是要知道隨機數要符合的概率密度分佈函式f(x)的定義,然後求其積分函式f(x),然後求f(x)的反函式

得到反函式的定義之後,利用函式rand產生一系列(0,1)之間的隨機數代入反函式中計算得到的結果數列就符合原來f(x)的分佈。

這種方法適用於,能夠容易得到概率密度分佈函式的積分函式的反函式的解析表示式的情況。

下面以指數分佈為例給出**和驗證影象

指數分佈的概率密度函式形式為

f(x)=   λexp(-λx)  (x>0)

0               (x<=0)

其中λ > 0是分佈的一個引數

指數分佈的累積分佈函式

f(x)= 1-exp(-λx)  (x>0)

=0                  (x<=0)

指數分佈的累積分佈函式的反函式是

g(y)= -log(1-y)/λ   (0

使用直接抽取的方法 先產生 [0,1]間的隨機數列

利用累積分佈函式的反函式,得到的結果就是符合指數分佈的序列

n=10000; %產生隨機數的個數

lambda=3; %引數λ

y=rand(1,n);  %生成n個0,1間均勻分佈隨機數

x=-log(1-y)/lambda; %生成指數分佈隨機數

[n,xout]=hist(x,30);    %分割槽間統計隨機數出現概率

nn=n/n/mean(diff(xout));

bar(xout,nn,1);hold on;  %畫圖驗證隨機數是否符合概率密度函式

plot([0 xout],lambda*exp(-lambda*([0 xout])),'r');hold off;

xlabel('x');

ylabel('p(x)');

在matlab中,如何實現將一個矩陣按行或列進行隨機的重新排序?

20樓:匿名使用者

假設行數或列數為n

vector = randperm(n);

vector是從1到n的整數隨機排列的向量按照vector裡各個元素的值重

新排列行列向量就可以了

假設待排列矩陣為m,排列後的矩陣為a

按列隨機排列

a = zeros(size(m));

for i=1:n

a(:,i)=m(:,vector(i));end

MATlAB中怎麼把一組資料的順序倒過來

用fliplr,如 x 1 2 3 4 5 fliplr x ans 54321 matlab是美國mathworks公司出品的商業數學軟體,用於演算法開發 資料視覺化 資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括matlab和simulink兩大部分。1 首先在我們的電腦上開啟ma...

在MATLAB中如何將一組無序陣列按照從小到大再從大到小排序

x 1 2 3 4 5 0 sort x ans 0 1 2 3 4 5 fliplr sort x ans 5 4 3 2 1 0 怎麼用matlab自己定義一個函式,使這個函式可以將一個陣列從小到大排列並取整 看你想用什麼排序方法了,簡單一些的話就是o n 2 的方法如氣泡排序 插入排序和選擇排...

matlab 求一組符合正態分佈的隨機數

第一種方法 利 bai用標du準引數下的分佈函式結合參zhi數進行運算,如dao下 datan1 0.5 randn 10,1 版 由於將普通的正態分權布轉化為標準正態分佈十分簡單,因此上面的計算後得到相應引數的正態分佈是合理的。第二種方法 直接呼叫random函式,如下 datan2 random...