Finding values of specific range from table row or column
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi,
I'm having the Table whose first column is as A = [12345 NaN NaN NaN NaN 457 NaN NaN NaN 785 NaN NaN NaN NaN NaN NaN 74502]
I want to select range as 12345 to NaN (shown in bold) , 457 to NaN and so on.
Please guide.
댓글 수: 0
채택된 답변
Stephen23
2019년 7월 26일
편집: Stephen23
2019년 7월 26일
>> A = [12345 NaN NaN NaN NaN 457 NaN NaN NaN 785 NaN NaN NaN NaN NaN NaN 74502].'
A =
12345
NaN
NaN
NaN
NaN
457
NaN
NaN
NaN
785
NaN
NaN
NaN
NaN
NaN
NaN
74502
Method one: accumarray:
>> C = accumarray(cumsum(~isnan(A)),A,[],@(v){v});
>> C{:}
ans =
12345
NaN
NaN
NaN
NaN
ans =
457
NaN
NaN
NaN
ans =
785
NaN
NaN
NaN
NaN
NaN
NaN
ans =
74502
Method two: mat2cell:
>> X = diff(find([true;diff(isnan(A))<0;true]));
>> C = mat2cell(A,X,1);
>> C{:}
ans =
12345
NaN
NaN
NaN
NaN
ans =
457
NaN
NaN
NaN
ans =
785
NaN
NaN
NaN
NaN
NaN
NaN
ans =
74502
추가 답변 (1개)
Shreya Shetty
2019년 7월 26일
편집: madhan ravi
2019년 7월 26일
Go through this. It might help you
댓글 수: 1
madhan ravi
2019년 7월 26일
편집: madhan ravi
2019년 7월 26일
No, indices should be determined by the code and not by giving it manually.
참고 항목
카테고리
Help Center 및 File Exchange에서 Tables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!