我有一個大小為(8,1500)的矩陣 X 和一個有一個矩陣(2,1500)的 Y。如何從兩個矩陣中提取 100 個隨機列?
這意味著如果我從矩陣 X 中提取第 20 列,我必須對矩陣 Y 執行相同的操作。
uj5u.com熱心網友回復:
所以你有了
X = rand(8,1500);
Y = rand(2,1500);
您可以創建 100 列的隨機索引并從兩個矩陣中選擇它
idx = randperm( 1500, 100 );
Xi = X(:,idx);
Yi = Y(:,idx);
注意我曾經randperm獲得 100 個獨特的列,即沒有重復。如果您很高興有隨機重復,您可以替換randperm(1500,100)為randi(1500,1,100);
uj5u.com熱心網友回復:
這是你要找的嗎?
A = rand( 8,1500 );
B = rand( 2,1500 );
ncol = 100;
cols = ceil( rand( ncol, 1 ) * 1500 );
Ac = zeros( 8, ncol );
Bc = zeros( 2, ncol );
for pos = 1:ncol
col = cols(pos);
Ac(:,pos) = A(:,col);
Bc(:,pos) = B(:,col);
end
Ac(:,1)
A(:,cols(1))
您生成一個列號的隨機串列,介于 1 和 1500 之間。并從 A 和 B 中獲取相同的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/475408.html
標籤:matlab
上一篇:在MATLAB中與N個矩陣相交
