Find specific entry based on column value in table

Apologies if this has been asnwered somewhere but I was unable to find a simple answer to what I strongly suspect is a really simple operation in MATLAB. I have a simple table (see attached), and I want to extract the number that corresponds to the name 'Bob'. (so in this case, 2). How would I extract this? Essentially I am looking for the row index of a table where the column value is something specific.
Thanks,

 采纳的回答

I'd create a logical array of the name column, and use that to extract the number from the first column. You can learn about logical arrays in Ch 12 of MATLAB Onramp. This page on accessing data in a table is likely also helpful.
The code might be something like this
n = data.Number(data.Name=='Bob')

4 个评论

Thanks for the response, I have tried this already but I kept getting the error that "operator == is not supported for operants of type 'cell'"
Maybe this is because of the way that I specified the variables? Every entry in 'name' was specified as a cell (this is not something I can change as it is dependent on some external software.
Specifically, I am using a table extracted from a dicom file using the .ROIs method as shown in this example https://uk.mathworks.com/help/images/ref/dicomcontours.createmask.html
For this specific type of table where the entries of Name are cells,
data.Number(strcmp(data.Name, 'Bob'))
should do the trick
How are you loading your table? Consider using readtable.
I am actually not doing the loading myself, I'm reading it off a dicomfile as shown on the mathworks website
dicominfo(path)
and then accessing contours with
contours=dicomContours(info);
and finally loading the table with
ROIs=contours.ROIs;
I missed that detail. I think I like the strcmp approach better anyway.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Tables 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by