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!