How to get a random 50x14 matrix from 300x14 matrix

1 次查看(过去 30 天)
Hello,
Could you please tell me how to get a random 50x14 matrix from 300x14 matrix?
  4 个评论

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2022-3-27
Perhaps this, if you want all 50 rows to be adjacent to each other and not randomly chosen.
% Define matrix.
m = randi(9, 300, 14)
% Get starting and ending rows
startingRow = randi(size(m, 1)-49, 1, 1)
endingRow = startingRow + 49
% Extract a band of 50 contiguous rows
m50 = m(startingRow : endingRow, :);
  3 个评论
Image Analyst
Image Analyst 2022-3-28
So just delete the first line where I created an m. I just did that because you keep forgetting to attach your actual matrix in a .mat file with the paperclip icon.
% Get starting and ending rows
startingRow = randi(300-49, 1, 1)
startingRow = 207
endingRow = startingRow + 49
endingRow = 256
As you can see above when I ran it, it would take all rows between 207 and 256 of your original matrix and extract them to a new matrix called m50. Why do you think that will not work for your matrix?

请先登录,再进行评论。

更多回答(1 个)

Torsten
Torsten 2022-3-27
编辑:Torsten 2022-3-27
A = rand(300,14);
p = randperm(300,50);
B = A(p,:)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by