1樓:匿名使用者
可以用這個語句進行隨機排列 x=x(randperm(numel(x)))
例如x=[1 2 3 4 7 9]
x=x(randperm(numel(x)))得到x=[9 1 4 3 2 7]
2樓:兔子和小強
給定陣列a,如下**可將其打亂:
a = a(randperm(numel(a)));
3樓:
最裡面的那個括號裡也要大寫x
matlab中,怎樣把一組給定的資料隨機排列?
4樓:四捨**入
可以參考下面的**:
x=x(randperm(numel(x)))numel(x)獲得變數長度
randperm(n)產生長度為n的隨機數列 如:
randperm(4)
ans=
3 2 1 4
x(...) 取得x中相應元素產生新數列
5樓:
使用函式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、使用的方法:
利用索引值的隨機排列,生成所有元素的隨機排列
6樓:
x=x(randperm(numel(x)))numel(x)獲得變數長度
randperm(n)產生長度
為n的隨機數列 如:
randperm(4)
ans=
3 2 1 4
x(...) 取得x中相應元素產生新數列
7樓:匿名使用者
同意2樓的觀點
就是這樣,當然你也可以使用rand等生成其他隨機數
在matlab中,如何實現將乙個矩陣按行或列進行隨機的重新排序?
8樓:匿名使用者
假設行數或列數為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 從陣列中隨機取幾個下標不同的元素
9樓:匿名使用者
原陣列a,假設是一維的。取n個元素。
rand=randperm(length(a));
index=rand(1:n);
index=sort(index);
b=a(index);
b就是你要的。如果不要求下標按順序排列,將第三行(index=sort(index);)去掉。
10樓:天雲一號
在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
11樓:稅鶯韻楚好
如果這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 如何從已知陣列中隨機提取幾列
12樓:匿名使用者
m=size(a,2);
col=ceil(rand(1,n)*m);
b=a(:,col);
其中col為需要隨機選取的列數
給定a得到b
想要對隨機列進行排序和避免重複清加上**
13樓:匿名使用者
比如陣列a為1行5列,則提取第2列的方法為:b=a(:,2); 取其他列是類似的方法
matlab把乙個陣列的部分隨機打亂
14樓:真
用randperm隨機打亂
a=1:200
p1=randperm(200);
b=a(p1(1:50));
a(p1(1:50))=b(randperm(50))
matlab怎樣從陣列矩陣中隨機取數?
15樓:匿名使用者
try function 'randperm', for example:
a=[1 2 3 4 5 6 7 8 9 10];
b=a(randperm(length(a)));
x=b(1:5);
matlab怎樣從陣列矩陣中隨機取數
16樓:匿名使用者
假設矩陣
抄是m*n維的矩陣,隨機生成乙個矩陣s。在s中任取k個數,將這k個數放入一維陣列target中。matlab**如下:
clcclear
m = input('陣列行數m:');
n = input('陣列列數n:');
k= input('將要取出的數個數k:');
if (k >m*n)
disp('矩陣元素個數小於需要取出的數個數!');
else
s = rand(m,n);
n= numel(s);%陣列長度
i=ceil(rand(1,k)*n);
target = s(i);
end執行結果如下所示。
17樓:茂甜利谷之
tryfunction'randperm',forexample:
a=[12345678910];
b=a(randperm(length(a)));
x=b(1:5);
matlab打亂資料,matlab中如何將某一陣列中資料進行打亂,有沒有相應的函式,謝謝,線上等。
a rand 1,20 隨即生成長度為100的陣列 randindex randperm length a 隨即打亂陣列索引 a a randindex 用新的索引構造打亂後的陣列 求大神matlab中如何打亂二維陣列中已有的排序 其實就是打亂行的順序,很簡單 a 0 0 0 10 2 0 31 0...
如何將Excel中資料匯入matlab變數中
x xlsread a.xlsx 讀進來後,x是乙個cell矩陣 如何將excel中的資料匯入到資料庫 如何將excel的資料匯入spss中 excel匯入spss步驟1 啟動spss,會出現如下圖框。選取 更多檔案 excel匯入spss步驟2 在 檔案型別 出選擇 excel 格式,點相應文件,...
cad中如何將整體圖形拆開,CAD中如何將乙個整體圖形拆開
cad中移 形的方法 你好,可bai以用pe命令合併圖形,du有時合併不了先把圖zhi 形用x拆開先。你要dao是說的是塊的話就用版b,先給塊定個名權字,然後拾取乙個點,再點選擇要的對像點確定,選到的圖形就成了乙個整體了,還有你說用ro時不對,其實有很多種方法旋轉角度的,你輸入數值旋轉是反方向轉的,...