convert number in a matrix to a scalar

222 views (last 30 days)
Hello everyone I have matrix "values" and I need to sum all of it's element so I use sumOFvalues= sum(values(:)); the sumOFvalues is a matrix and I need to convert it into a scalar so I can addit with any number independent of the size. does any one know how to do this ?
Stephen23 on 12 Jun 2018
@Reema Alhassan: numeric data types do not store any formatting information. How any numeric looks is irrelevant to how it is stored in memory. Converting your scalar numeric to a char vector is not likely to help you.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 12 Jun 2018
The bug is your line
sumOfValues=sprintf('%f', sumOfValues);
sprintf() formats numeric values as character vectors and returns the character vector. The output of the sprintf() is not a number: it is a character vector. In your case it happens to be a character vector containing 15 characters, '10765655.982710', which is the vector ['1' '0' '7' '6' etc] .
You are then writing over your original numeric value with that character vector.
What was your intent in using sprintf() at that point in your code?

Sign in to comment.

More Answers (1)

Ameer Hamza
Ameer Hamza on 12 Jun 2018
What you are doing is correct, it should return a scalar value. For example
values = randi(5, 3, 3)
values =
2 4 1
4 1 1
1 2 5
sumOfValues = sum(values(:))
sumOfValues =
Jan on 12 Jun 2018
Edited: Jan on 12 Jun 2018
@Reema Alhassan: It sounds like a misunderstanding. 1x1 matrices are scalars in Matlab. There is no difference:
a = 5
% [1 1]

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!