# Error using randi Size inputs must be scalar (Matlab)

2 views (last 30 days)
high speed on 12 Apr 2021
Commented: Jan on 13 Apr 2021
I have entries parameters A and B, and I have to obtain C with for loop, where C is the random subset of B of size Ai
I program this
for i=1:n
C=randi([0,1],B,A(i));
end
But I get the error (Error using randi ==> inputs must be scalar)
How can I fixe the problem
Rik on 12 Apr 2021
How are you making sure B and A(i) are positive scalars?

Jan on 12 Apr 2021
Edited: Jan on 12 Apr 2021
"C is the random subset of B of size Ai" :
for i = 1:n
% Without repetitions:
C = B(randperm(numel(B), A(i)));
% Or with repetitions:
C = B(randi([1, numel(B)], 1, A(i)));
... use C now
end
high speed on 13 Apr 2021
@Jan Unfortunately, that's not what I want. Because I must program in a way that C is the random subset of B of size Ai. And in your example you didn't consider the size Ai
Jan on 13 Apr 2021
@high speed: Sorry, what? Yes, in my example, I've used 4 to clarify what "repetition" means. You have asked for this detail. But the code in my answer does contain A(i).

### Categories

Find more on Biological and Health Sciences in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!