how to add specific columns in table (in verse)

I have a table T1 in cell that looks like this (values are double):
T1 =
Ligota1 Ligota2 Orzesze1 Orzesze2 Tychy1 Tychy2
_______ _______ ________ ________ _________ _________
1 2 3 4 5 6
7 8 9 1 2 3
4 5 6 7 8 9
0 1 2 3 4 5
6 7 8 9 0 10
How to add table rows omitting specific columns e.g. names begining with 'Ligota'. I tried to do it with varfun and rowfun functions with no luck. I was able to sum only the rows of all columns:
sum(T1{:,:},2);

 Réponse acceptée

Hi,
you've righly spotted the subtle difference parentheses vs curly braces ("Curly braces, {}, returns an array concatenated from the contents of selected rows and variables.", see here). So it is sufficient to tell the summation operator, which columns to sum (let's say 2nd and 4th):
sum(T1{:,[2,4]},2);

4 commentaires

Daniel Cisek
Daniel Cisek le 7 Déc 2022
Modifié(e) : Daniel Cisek le 7 Déc 2022
It could be something like this:
sum(T1{:,find(~contains(T1.Properties.VariableNames,"Ligota"))},2)
Or it's better solution?
Jiri Hajek
Jiri Hajek le 7 Déc 2022
Nice. It must suit you, doesn't matter how many other ways there are to get to the same result.
Stephen23
Stephen23 le 7 Déc 2022
Modifié(e) : Stephen23 le 7 Déc 2022
Although code golf is popular, for clarity and ease of debugging you could use two lines and logical indexing:
X = contains(T1.Properties.VariableNames,"Ligota");
S = sum(T1{:,~X,2)
Thanks Stephen23. I always try to compress code as much as possible. Maybe it's time to think about how to write it transparently.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange

Produits

Version

R2018b

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by