How to extract row intervals from a table to create a new one.
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Antworten (2)
Walter Roberson
am 31 Jan. 2018
Bearbeitet: Walter Roberson
am 31 Jan. 2018
T2 = T1(2:4,:);
4 Kommentare
Walter Roberson
am 1 Feb. 2018
Bearbeitet: Walter Roberson
am 1 Feb. 2018
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
am 1 Feb. 2018
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.
2 Kommentare
Walter Roberson
am 1 Feb. 2018
No, notice they wanted three lines of results, which can only be explained by wanting a range.
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!