How can I index through logicals?

How can I index/loop through table(T) to get the rows with logical 1s in T.logical. Also, check if the logical is 0s, if so get the respective row with the string 'High' from T.Level?
T = table;
A = randi([0, 1], 5, 5);
c1 = A(:,1);
c2 = A(:,2);
c3 = A(:,3);
c4 = A(:,4);
c5 = A(:,5);
vert = vertcat(c1, c2, c3);
Types = {'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'C'}';
Level = {'Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 'Medium', 'High'}';
T.Types = Types;
T.logical = vert;
T.Level = Level;
TrueTable = table;
TrueTable.UniqueType = unique(T.Types);
numTypes = height(TrueTable);
TrueTable.Total = cell(numTypes, 1);

 Accepted Answer

Voss
Voss on 10 Jul 2023
Edited: Voss on 10 Jul 2023
Construct table T:
A = randi([0, 1], 5, 5);
vert = reshape(A(:,1:3),[],1);
Types = {'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'C'}';
Level = {'Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 'Medium', 'High', 'Low', 'Medium', 'High'}';
T = table(Types,vert,Level);
T = renamevars(T,'vert','logical')
T = 15×3 table
Types logical Level _____ _______ __________ {'A'} 1 {'Low' } {'B'} 0 {'Medium'} {'C'} 1 {'High' } {'D'} 0 {'Low' } {'A'} 1 {'Medium'} {'B'} 0 {'High' } {'C'} 1 {'Low' } {'D'} 1 {'Medium'} {'A'} 0 {'High' } {'B'} 1 {'Low' } {'C'} 1 {'Medium'} {'D'} 0 {'High' } {'A'} 0 {'Low' } {'B'} 1 {'Medium'} {'C'} 1 {'High' }
Get a new table (called rows) that contains the rows of T where logical is 1 or Level is 'High':
idx = T.logical | strcmp(T.Level,'High');
rows = T(idx,:)
rows = 12×3 table
Types logical Level _____ _______ __________ {'A'} 1 {'Low' } {'C'} 1 {'High' } {'A'} 1 {'Medium'} {'B'} 0 {'High' } {'C'} 1 {'Low' } {'D'} 1 {'Medium'} {'A'} 0 {'High' } {'B'} 1 {'Low' } {'C'} 1 {'Medium'} {'D'} 0 {'High' } {'B'} 1 {'Medium'} {'C'} 1 {'High' }

More Answers (0)

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!