Check which range an upper & lower limit lies within
3 次查看(过去 30 天)
显示 更早的评论
Hi,
I have a set of horizontal coordinates (Y1 and Y2) which define a rectangle. Y1 defines the LHS top edge point & Y2 the RHS bottom edge point (see image). I also have a table (T) which has the horizontal location of each section of a planform. For example:
Y1 = 3.4;
Y2 = 7.1;
T = table([0.1, 0.75, 3.0, 8.2, 9.1]);
T = rename vars(T, T.Properties.VariableNames, ["L1", "L2", "L3", "L4", "L5"]);
I want to see which range (e.g. L1-L2, L2-L3......) Y1 and Y2 (i.e the rectangle) lies in (Y1 is the lower limit and Y2 is the upper limit). So for this example, I know the rectange is between L3 and L4 but I want the code to tell me this.
I am stuck on how to code this. Any suggestions will be appreciated. Thank you
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1334135/image.png)
0 个评论
采纳的回答
Matthieu
2023-3-23
Hi,
I would recommand using a cell object instead of table, or a matrix depending on your needs, as shown below :
Y1 = 3.4;
Y2 = 7.1;
T = {0.1, 0.75, 3.0, 8.2, 9.1}
Tmat = horzcat(-inf,cell2mat(T),inf) ; % -inf and inf are here to tell your limits are out of L bounds
Y = [Y1,Y2] ;
Range = cell(1,length(Y)) ;
for i = 1:length(Y)
for k = 1:length(T)-1
if T{k} < Y(i) & T{k+1} > Y(i) ;
Range{i} = [T{k},T{k+1}] ;
end
end
end
Range
This is coded in a horrible way and I'm sure there are better ways to do it, but if I'm not mistaken this is what you needed.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numeric Types 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!