How to substract in table

22 views (last 30 days)
Dion Theunissen
Dion Theunissen on 24 Jun 2021
Commented: Walter Roberson on 24 Jun 2021
Hi,
How can I substract the first value of all columns from the other rows in a table?
So I have a table like this:
1230764 205775 182354 208200 226372 225378 204289 181576
1230764 205775 182354 208200 226372 225378 204289 181576
1230764 205775 182354 208200 226372 225378 204289 181576
1230766 205775 182354 208200 226372 225378 204289 181576
1230830 205775 182354 208200 226372 225378 204289 181576
1230915 205775 182354 208200 226372 225378 204289 181576
1231113 205780 182357 208205 226375 225380 204291 181581
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
1242631 207147 183648 209735 227913 226996 205878 183094
And need to substract 1230764 from the other values of that column and so on for the other columns.
Thanks, Dion
  1 Comment
Dion Theunissen
Dion Theunissen on 24 Jun 2021
After I substract al those value, I want to sum all the rows so i get 1 column of all the values

Sign in to comment.

Answers (2)

Walter Roberson
Walter Roberson on 24 Jun 2021
Provided that all variables are numeric:
array2table(T{:,:} - T{1,:}, 'variablenames', T.Properties.VariableNames)
  2 Comments
Walter Roberson
Walter Roberson on 24 Jun 2021
array2table(sum(T{:,:} - T{1,:},1), 'variablenames', T.Properties.VariableNames)
Walter Roberson
Walter Roberson on 24 Jun 2021
To sum along the rows, change the ,1 to ,2

Sign in to comment.


Mohammad Sami
Mohammad Sami on 24 Jun 2021
You can use varfun to subtract the first value in the column from the rest of the values.
out = varfun(@(x)x-[0;repelem(x(1),length(x)-1,1)],mytable);
  1 Comment
Dion Theunissen
Dion Theunissen on 24 Jun 2021
Can I also sum all the values per row on this way?

Sign in to comment.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!