How to extract row intervals from a table to create a new one.

4 次查看(过去 30 天)
if I have a table
T:
v1 v2 v3 v4
a 1 1 5
b 3 3 7
c 2 5 7
d 5 5 2
e 5 7 7
How could i obtain all the columns from b and d rows as T2 table?
T2:
v1 v2 v3 v4
b 3 3 7
c 2 5 7
d 5 5 2

回答(2 个)

Walter Roberson
Walter Roberson 2018-1-31
编辑:Walter Roberson 2018-1-31
T2 = T1(2:4,:);
  4 个评论
Philippe Corner
Philippe Corner 2018-2-1
Thanks Mr. Walter, it is showing a mistake due to the == when I adapted it to my code.. do you have an idea why could it be?
Walter Roberson
Walter Roberson 2018-2-1
编辑:Walter Roberson 2018-2-1
The == could have difficulty depending on the data type involved. Perhaps you need
first_row = find(strcmp(T1.v1, 'b'), 1, 'first');
last_row = find( strcmp(T1.v1, 'd'), 1, 'first');

请先登录,再进行评论。


Peter Perkins
Peter Perkins 2018-2-1
Walter interpreted "all the columns from b and d rows" as "FROM b TO d". I'm going to interpret it as "b AND d".
If the first variable in T has unique values, turn it into the row names, and just subscript:
T.Properties.RowNames = T.Var1;
T.Var1 = [];
t({'b' 'd'},:)
If they're not unique, use ismember to create a logical vector to use as a row subscript.

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by