Find specific range in a table
조회 수: 7 (최근 30일)
이전 댓글 표시
Hi,
I want to find a specific range in my table.
For example I have a table like this called table:
Var1 Label MaxPosition MinValue
____ _________________ ___________ ________
678 {'Image0029.bmp'} 38 0
679 {'Image0029.bmp'} 51 0
680 {'Image0030.bmp'} 40 0
681 {'Image0030.bmp'} 47 0
682 {'Image0030.bmp'} 51 0
683 {'Image0030.bmp'} 54 0
684 {'Image0031.bmp'} 42 0
685 {'Image0031.bmp'} 53 0
686 {'Image0031.bmp'} 57 0
687 {'Image0032.bmp'} 44 0
688 {'Image0032.bmp'} 55 0
689 {'Image0032.bmp'} 59 0
690 {'Image0033.bmp'} 45 0
I want to display just the values greater than 40 and less than 50 of the column MaxPosition. I tried the code but it doesnt work and I dont know why. I searched in the forums and help and dont find a solution for my problem.
This is the code I use:
NewTable = varfun(@(x)(x>40) & (x<50),table,'GroupingVariables','MaxPosition')
If it is uesfull the error:
Error using tabular/varfun>dfltErrHandler (line 434)
Applying the function '@(x)(x>40)&(x<50)' to the 1st group in the variable 'Label' generated the following error:
Undefined function 'gt' for input arguments of type 'cell'.
Error in tabular/varfun>@(s,varargin)dfltErrHandler(grouped,funName,s,varargin{:}) (line 183)
errHandler = @(s,varargin) dfltErrHandler(grouped,funName,s,varargin{:});
Error in tabular/varfun (line 230)
outVals{igrp} = errHandler(s,inArg);
Error in calculation (line 27)
MaxV = varfun(@(x)(x>40) & (x<50),sortedTablelup,'GroupingVariables','MaxPosition')
I would be happy if someone could help me.
Best
Pouyan
댓글 수: 0
채택된 답변
Star Strider
2021년 6월 2일
Try this —
T1 = cell2table({678. {'Image0029.bmp'}, 38 0
679 {'Image0029.bmp'} 51 0
680 {'Image0030.bmp'} 40 0
681 {'Image0030.bmp'} 47 0
682 {'Image0030.bmp'} 51 0
683 {'Image0030.bmp'} 54 0
684 {'Image0031.bmp'} 42 0
685 {'Image0031.bmp'} 53 0
686 {'Image0031.bmp'} 57 0
687 {'Image0032.bmp'} 44 0
688 {'Image0032.bmp'} 55 0
689 {'Image0032.bmp'} 59 0
690 {'Image0033.bmp'} 45 0}, 'VariableNames',{'Var1','Label','MaxPosition','MinValue'})
T2 = T1((T1.MaxPosition>40) & (T1.MaxPosition<50),:)
.
댓글 수: 2
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!