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!