从两个矩阵中提取相同的列

  • 本文关键字:提取 两个 matlab
  • 更新时间 :
  • 英文 :


我有一个大小为(8,1500)的矩阵X和一个大小为(2,1500)的矩阵Y。我如何从两个矩阵中提取100个随机列?

意味着如果我从矩阵X中提取第20列,我必须对矩阵y做同样的事情

所以你有

X = rand(8,1500); 
Y = rand(2,1500);

您可以创建一个包含100列的随机索引,并从两个矩阵

中选择它
idx = randperm( 1500, 100 );
Xi = X(:,idx);
Yi = Y(:,idx);

注意,我使用randperm来获得100个唯一的列,即没有重复。如果你喜欢随机重复,你可以用randi(1500,1,100)代替randperm(1500,100);

这是你要找的吗?

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处取相同的位置

相关内容

  • 没有找到相关文章

最新更新