How to retrieve table data based on matched variable
30 次查看(过去 30 天)
显示 更早的评论
<Note: I think this might be a database question, but I'd like to know if I can do what I wanted using Matlab tables.>
I have a table that includes a variable that has a unique value for each row - let's call it the 'key'. I have determined that I am interested in the rows that match a given array of values for the key, and I'd like to retrieve data for for those rows. I can easily do this in a for loop:
% I have determined that I am interested in the rows that match the key values in myKeys, and
% I would like to retrieve the values of myTable.Var1 for those row.
myKeys = [1;3;7;8;9];
myData = NaN(5,1);
for n = 1:5
myData(n) = myTable.Var1(myTable.key==myKeys(n));
end
Is there any way to do this without an explicit for loop? It feels like I should be able to use logical indexing in some way, but I haven't come up with it.
0 个评论
回答(1 个)
Ramnarayan Krishnamurthy
2019-6-21
编辑:Ramnarayan Krishnamurthy
2019-6-21
You are correct in that you can use logical indexing to solve this without loops. Here is a possible approach:
% Extract logical indices of the matched keys
idx = ismember(myTable.key, myKeys);
% Access the table for these specific rows
myTable(idx,:)
HTH
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!