How to create the random sampling matrix for a certain number of times?
2 views (last 30 days)
Show older comments
I need to find random sample(consisting of 40 values) for 16 elements (each different).Using Em22(:,:,i) will help?How to do it?
c=1;
d=20;
y11=c+(d-c)*rand(20,1);
y12=c-(d-c)*rand(20,1);
y=[y11;y12];
Em1=(432*10^6+y*10^6);
for k=1:40
Em11(k)=Em1(k,1); %Elastic Modulus(40 random values)for 1 element
Em22(:,:,i)=Em11(:,:,i); %Elastic Modulus for all elements(Doubt)
end
2 Comments
Arif Hoq
on 24 Feb 2022
I am not so much clear about your expectation.just try this
c=1;
d=20;
y11=c+(d-c)*rand(20,1);
y12=c-(d-c)*rand(20,1);
y=[y11;y12];
Em1=(432*10^6+y*10^6);
for k=1:40
Em11(k)=Em1(k,1); %Elastic Modulus(40 random values)for 1 element
Em22(:,k)=Em11(k); %Elastic Modulus for all elements(Doubt)
end
Em22'
Answers (1)
Awais Saeed
on 24 Feb 2022
Edited: Awais Saeed
on 24 Feb 2022
What I understood is that you want those 40 values with 16 different c and d, right? If yes, then loop through those values, do your calculations and store it in a multi-dimensional array.
c = [1 2];
d = [20 21];
% loop through c and d
for idx = 1:1:length(c)
y11 = c(idx)+(d(idx)-c(idx))*rand(20,1);
y12 = c(idx)-(d(idx)-c(idx))*rand(20,1);
y = [y11;y12];
Em1 = (432*10^6+y*10^6);
for k=1:40
Em11(k) = Em1(k,1); %Elastic Modulus(40 random values)for 1 element
Em22(:,k,idx) = Em11(k); %Elastic Modulus for all elements(Doubt)
end
end
Em22(:,:,1); % for first element
Em22(:,:,2); % for second element
2 Comments
Awais Saeed
on 24 Feb 2022
You can store Em11 for one element in Em22(:,:,1) and Em11 for another element in Em22(:,:,2) and so on. To access Em22 for first element, just use Em22(:,:,1). I have updated the script for more clarity.
See Also
Categories
Find more on Loops and Conditional Statements 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!