Please help me to solve the issue for the following code
1 view (last 30 days)
Show older comments
Prabha Kumaresan
on 26 Jan 2018
Commented: Prabha Kumaresan
on 29 Jan 2018
I have asked this question already but I couldnt get the answers what i actually need.
A=[0.01 0.02 0.03 0 0 0 0.02;
0.02 0.03 0.04 0 0 0 0.03;
0.03 0.02 0.02 0 0 0 0.04]
s=sum(sum(A))
if i run the code it gives the value 0.3100.
But how to replace the numbers such that the sum of A should be 0.35. could anyone help me on this
1 Comment
Rik
on 26 Jan 2018
If you don't get an answer to work, you should comment there, NOT open a new question.
Accepted Answer
Rik
on 26 Jan 2018
A=[0.01 0.02 0.03 0 0 0 0.02;
0.02 0.03 0.04 0 0 0 0.03;
0.03 0.02 0.02 0 0 0 0.04];
A = 0.35*A/sum(A(:))
s=sum(A(:))
2 Comments
Walter Roberson
on 29 Jan 2018
Why should that line not be included? If it gets you the answer you want, then why not use it?
If you want to generate A so that it already has the right sum, then use Roger's randfixedsum() from the File Exchange.
More Answers (1)
Prabha Kumaresan
on 29 Jan 2018
2 Comments
Walter Roberson
on 29 Jan 2018
Edited: Walter Roberson
on 29 Jan 2018
I do not understand that remark.
Perhaps you need
new_A = 0.35*A./sum(A(:));
additions_to_A = new_A - A;
and now the additions of numbers to A that you need to reach the desired total is in the matrix additions_to_A, and you can get the desired matrix by using
desired_matrix = A + additions_to_A;
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!