Remove random columns from a big matrix?

1 view (last 30 days)
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!!

Accepted Answer

Adam Danz
Adam Danz on 6 Aug 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 Comments
stelios loizidis
stelios loizidis on 6 Aug 2019
I tried it and it works fine. Thank you very much!!!!!

Sign in to comment.

More Answers (1)

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

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!