Filter löschen
Filter löschen

How can I index through logicals?

1 Ansicht (letzte 30 Tage)
Rookie Programmer
Rookie Programmer am 10 Jul. 2023
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);

Akzeptierte Antwort

Voss
Voss am 10 Jul. 2023
Bearbeitet: Voss am 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' }

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by