How total of column of a matrix can be kept be same????

2 visualizzazioni (ultimi 30 giorni)
If I have a matrix A A=[ 0.4000 0.6000 0.8000 0.8000 1.0000 1.6000 0.9333 1.2333 0.0000 0.0000; 1.2000 0.6000 0.8000 0.8000 1.0000 0.4000 0.5333 0 0 0; 1.2000 1.4000 1.6000 1.6000 1.8000 2.4000 2.5333 2.8333 4.0000 4.0000; 1.2000 1.4000 0.8000 0.8000 0.2000 0 0 0 0 0] I want to keep the total of column to remain same as here the total of each column is as:
sum(A(:,1))
ans =
4
>> sum(A(:,2))
ans =
4
>> sum(A(:,3))
ans =
4
>> sum(A(:,4))
ans =
4
>> sum(A(:,5))
ans =
4
>> sum(A(:,6))
ans =
4.4000
>> sum(A(:,7))
ans =
4
>> sum(A(:,8))
ans =
4.0667
>> sum(A(:,9))
ans =
4
>> sum(A(:,10))
ans =
4
at 6th and 8th column its becoming more than 4 .... so here how can round of this to 4??? plz plz help.....
  3 Commenti
suchismita
suchismita il 12 Giu 2014
yes....if needed some should be deleted to get 4
suchismita
suchismita il 12 Giu 2014
here in my example matrix can you help me in modifying without disturbing the zeros...please...like if in a column sum is more than 4 it should minus the rest and if its less it should add to make it 4... can you help me in that way...

Accedi per commentare.

Risposta accettata

Jos (10584)
Jos (10584) il 12 Giu 2014
This is called a normalisation procedure.
A = rand(10,6) % some random data
sumA = sum(A,1) % unequal column sums
normfun = @(a,b) 4 * (a/b)
Anorm = bsxfun(normfun, A, sumA) % normalise each column
sum(Anorm,1) % all 4, check!
  1 Commento
suchismita
suchismita il 12 Giu 2014
thank u so much... but here in my example matrix can you help me in modifying without disturbing the zeros...please...like if in a column sum is more than 4 it should minus the rest and if its less it should add to make it 4... can you help me in that way...

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by