Please help me to solve the issue for the following code

1 次查看(过去 30 天)
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

采纳的回答

Rik
Rik 2018-1-26
You have a working answer here, you just didn't run the code correctly.
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 个评论
Prabha Kumaresan
Prabha Kumaresan 2018-1-29
编辑:Walter Roberson 2018-1-29
the command line A = 0.35*A/sum(A(:)) should not be included. On omitting the line s=0.31.
Could you please tell me how to change or replace the numbers in A such that the value of s=0.35.
Walter Roberson
Walter Roberson 2018-1-29
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.

请先登录,再进行评论。

更多回答(1 个)

Prabha Kumaresan
Prabha Kumaresan 2018-1-29
if i use the command line it gives the result what i need but the addition of the numbers of the matrix was not changed.
  2 个评论
Walter Roberson
Walter Roberson 2018-1-29
编辑:Walter Roberson 2018-1-29
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;

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by