How can I get randperm function to calculate assigned percentage and values?
조회 수: 1 (최근 30일)
이전 댓글 표시
I need to calculate that out of 1000000 elements, 75% should be randomly assigned a value of 1.5.
‘p = randperm(n)’ to specify which element is assigned with the properties of inclusions, where ‘n’ is the total number of elements (1000000), ‘p’ contains randomly ordered numbers from ‘1’ to ‘n’. Then, I need to assign the first ‘m’ elements with the value (1.5)
Out of 1000000 elements, 75% should be randomly assigned a value of 1.5.
‘n’=1000000
‘m’=1.5
댓글 수: 0
채택된 답변
Keshav
2022년 6월 30일
Based on my understanding, you want to generate an array of size n such that random 75% elements value is 1.5.
you can use the below code to do so.
n = 1000000;
p = randperm(n);
array = zeros(n,1);
num = .75*n;
for i = 1:num
array(p(i)) = 1.5;
end
% if you want you can assign some other value to the remaining elements
%for i = num+1:n
% array(p(i)) = some_other_val
%end
댓글 수: 0
추가 답변 (1개)
Steven Lord
2022년 6월 30일
Let's look at a slightly smaller problem.
A = zeros(10);
numElements = numel(A)
numDesired = ceil(0.25*numElements)
elementsToSet = randperm(numElements, numDesired)
A(elementsToSet) = 1
howManyNonzeroElements = nnz(A) % Should be numDesired
Alternately if you're working with sparse matrices you should look at sprand, sprandn, and sprandsym instead.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!