Constraining a variable value
显示 更早的评论
I am constraining constants for the dynamics of an autonomous system that I am simulating. Within a for loop of 100 iterations, I would like to give "a" a random value greater than zero, "b" a random value greater than 1/a, and "c" a random value greater than 0.5. I have an idea for the code of "a" but I am confused on how to constrain "b" and "c" so that they are random values specifically greater than 1/a and 0.5. Here is what I have for my code right now:
AS= rand(1, 200)*1000;
for ii = 1:100
a = AS(ii);
b=1/a;
c=???
end
Any suggestions on this issue are greatly appreciated. Thank you.
5 个评论
Steven Lord
2021-9-27
You've told us the lower limits for the values the variables can take on, but what are the upper limits? Is it 1, Inf, a function of one of the other variables like b's lower limit is a function of a, etc.?
Also what distribution do you want to draw the values from?
Matthew Tortorella
2021-9-27
Image Analyst
2021-9-28
@Matthew Tortorella, are you ever going to try my suggestion below?
Matthew Tortorella
2021-9-28
Matthew Tortorella
2021-9-28
回答(1 个)
Image Analyst
2021-9-27
编辑:Image Analyst
2021-9-27
b = 1/a;
b = max([b, 0.5]); % Make sure b is > 0.5
c = a + (b-a) * rand;
c = max([c, 0.5]); % Make sure c is > 0.5
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!