Could anyone help me to get the sum of an array to a fixed value
2 次查看(过去 30 天)
显示 更早的评论
A=[1 2 3 4;
5 6 7 8]
how to get the sum of A to be fixed to a
value of 20 such that all the values in A needs
to be changed according to it.
3 个评论
回答(3 个)
KSSV
2018-10-23
A=[1 2 3 4;
5 6 7 8] ;
A = A(:) ;
iwant = cell([],1) ;
count = 0 ;
for i = 1:length(A)
B = nchoosek(A,i) ;
thesum = sum(B,2) ;
idx = thesum==20 ;
if any(idx)
count = count+1 ;
iwant{count} = B(idx,:) ;
end
end
iwant
Bruno Luong
2018-10-23
"There is no fixed logic"
OK that's easy then
A(:) = 0;
A(1) = 20;
3 个评论
Kevin Chng
2018-10-23
编辑:Kevin Chng
2018-10-23
How about
A(:)=1;
A(1) = 20-sum(A(2:end));
provided number of element in A lesser than 20.
Bruno Luong
2018-10-23
编辑:Bruno Luong
2018-10-23
Let's be more serious you can do many thing like shifting
A = A - sum(A) + 20/size(A,1);
or scaling
A = 20 * A ./ sum(A);
or both
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!