Remove random columns from a big matrix?

1 visualizzazione (ultimi 30 giorni)
Hello,
I have this issue: I want to randomly remove 3000 columns from a big matrix with size 1600X8500. below I have a code I wrote but when I run it the matlab outputs the following error: Index exceeds the number of array elements (1650)
A=[x1 x2 ...] % 1600by8500 matrix
k=randperm(size(A,1));
B=A;
B(:,k(1:3000))=[];
Your help is important!!

Risposta accettata

Adam Danz
Adam Danz il 6 Ago 2019
If A is 1600 x 8500 as you describe, then the line below will only create 1600 elements so you can't use an index of 1:3000.
k=randperm(size(A,1));
Instead, you want to use the 2nd dimension of A
k=randperm(size(A,2));
% ^
  2 Commenti
stelios loizidis
stelios loizidis il 6 Ago 2019
I tried it and it works fine. Thank you very much!!!!!
Adam Danz
Adam Danz il 6 Ago 2019
Glad I could help!

Accedi per commentare.

Più risposte (1)

madhan ravi
madhan ravi il 6 Ago 2019
B(:,randperm(size(A,2),3000))=[]

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by