Using logic to select specific values in a matrix
Ältere Kommentare anzeigen
Hi y'all,
I am trying to create a second table from my original table based on taking all the values in column B, that fulfill the requirement for column A.
Example data:
Edit: attached file
I want to create a second table that only includes row 2 as long as the first row = 1.
This is what I tried:
A = SmallerSample
idnt = A(:,1) == 1 ;
new = A(ind1, 2);
The error I get:
Error using ()
A table row subscript must be a numeric array containing real positive
integers, a logical array, a character vector, a string array, a cell array of
character vectors, or a pattern scalar.
Error in Graph_Bead_Distributions
new = A(ind1, 2);
Akzeptierte Antwort
Weitere Antworten (1)
John D'Errico
am 22 Nov. 2025
Bearbeitet: John D'Errico
am 22 Nov. 2025
Well, you are doomed to failure, as long as you don't use the right variable names as you created them!
A = [1, 0.1234
1, 0.1345
1, 0.1456
2, 0.1567
2, 0.1678
2, 0.1789];
idnt = A(:,1) == 1 ;
You defined the variable idnt. But then you tried to use idn1. Which is a DIFFERENT variable name. Apparently you also had the variable idn1 defined in your workspace, as otherwise, you would have gotten a different error.
new = A(idnt, 2)
But using the name you defined, it does indeed work. So you were not really doomed to fail. You just need to be more careful in your code. Look more carefully at the error message next time, as it suggested there was problem with the variable ind1, which is not in your workspace as a valid variable to use as an index.
2 Kommentare
Kristine
am 22 Nov. 2025
Kategorien
Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!