Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
Amirali AGHAMIRI
Amirali AGHAMIRI le 27 Mar 2022
Hello,
Could you please tell me how to get a random 50x14 matrix from 300x14 matrix?
  4 commentaires
Scott MacKenzie
Scott MacKenzie le 27 Mar 2022
@Amirali AGHAMIRI, @Torsten has posted an answer. Perhaps that is what you are after
Amirali AGHAMIRI
Amirali AGHAMIRI le 28 Mar 2022
Thanks.

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 27 Mar 2022
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 commentaires
Image Analyst
Image Analyst le 28 Mar 2022
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?
Amirali AGHAMIRI
Amirali AGHAMIRI le 28 Mar 2022
Thanks, it works.

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 27 Mar 2022
Modifié(e) : Torsten le 27 Mar 2022
A = rand(300,14);
p = randperm(300,50);
B = A(p,:)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by