How to access/change a specific column in table in cell array using cellfun?
12 views (last 30 days)
Show older comments
Hello all.
I have a cell array A that is compsed of two tables T1, T2 with identical columns. I am struggling to find a proper method to make some changes to a specific column in these tables. I can do this using a loop, but I prefer to use cellfun to do my job for fewer coding lines. Please follow this example:
T1 = table([1;2;3],['a';'b';'c']);
T2 = table([4;5;6],['x';'y';'z']);
A = {T1,T2};
How can I access the data in column 1 of each table (Var1) to do some mathematical operation on it, like addition or subtraction. I need to know how to properly write this using cellfun. Any help will be appreciated.
Thanks in advance,
Ahmad Gad
0 Comments
Accepted Answer
Walter Roberson
on 11 Feb 2021
cellfun(@(T) sum(T.var1), A)
4 Comments
Walter Roberson
on 14 Feb 2021
cellfun(@(T) [table(T.Var1+1,'VariableNames','Var1'), T(:,2:end)], A, 'uniform', 0)
In the special case that the variable name really is Var1 you could abbreviate to
cellfun(@(T) [table(T.Var1+1), T(:,2:end)], A, 'uniform', 0)
as Var1 is the default variable name
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!