Accessing data in matrix entries of tables

4 次查看(过去 30 天)
Dear all,
I am having trouble to access matrix data in tables. To explain better my problem I'm posting a MWE.
x = {1 "abc" [1 2;2 1];2 "def" [3 4;4 3];3 "ghi" [3 4;4 3]};
T = cell2table(x,'VariableNames',{'id','names','matdata'});
I am able to access data in table T as rows and variables. For example I can access the 1st row of "id" variable as:
T{1,'id'}
I am not able to access the table first row of variable "matdata" as a double matrix directly (the operation below returns a cell):
T{1,'matdata'}
So, my question is if there is a direct way to access the matrix [1 2;2 1] as a double, and if possible to access even directly to its rows or columns with a sigle line of code, so without the need of an auxiliary variable. By now I found this solution but it needs an auxiliary variable:
aux = table2array(T{1,'matdata'});
aux(1,:)
Instead I can do this directly with the "x" cell:
x{1,end}(1,:)
Thanks to all in advance for your advice and suggestions!

采纳的回答

Duncan Po
Duncan Po 2021-6-8
You can use multiple sets of curly braces {} to index into cells, and then use parentheses to index into the resulting arrays, like this:
>> T{1,'matdata'}{1}(1,:)
ans =
1 2

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by