Effacer les filtres
Effacer les filtres

How can I index through logicals?

1 vue (au cours des 30 derniers jours)
Rookie Programmer
Rookie Programmer le 10 Juil 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);

Réponse acceptée

Voss
Voss le 10 Juil 2023
Modifié(e) : Voss le 10 Juil 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' }
  1 commentaire
Rookie Programmer
Rookie Programmer le 10 Juil 2023
@Voss Thank you! I got the expected reults.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by