How to normalize a vector considering both maximum and the sum of values?
Mostra commenti meno recenti
For instance; I have a vector
A=[
7782
7761
7707
7832
8154
8442
8690
9151
9318
9300 ];
The maximum is 9300 and the sum is 84137. Now I need to normalize this vector so that I get the same shape pattern for a new maximum (say 9900) and new sum (say 8700).
Risposte (2)
Kaashyap Pappu
il 23 Dic 2019
0 voti
You can use the normalize function with the ‘range’ method to preserve the shape of your normalized plot. This will consider values in the range [a,b] where a is the minimum value and b is the maximum value. The other methods could also be used as needed.
Hope this helps!
Andrei Bobrov
il 23 Dic 2019
Please run follow m - file:
SN = 8700;
Nmx = 9900;
nmn = fzero(@(x)func1(x,Nmx,SN,A),-10000);
[~,N] = func1(nmn,Nmx,SN,A);
function [dt,N] = func1(Nmn,Nmx,SN,A)
mn = min(A);
N = (Nmx - Nmn)/(max(A) - mn)*(A - mn) + Nmn;
dt = sum(N) - SN;
end
Here N - your output vector.
2 Commenti
Sooraj Narayan
il 24 Dic 2019
Andrei Bobrov
il 24 Dic 2019
Modificato: Andrei Bobrov
il 24 Dic 2019
subplot(2,1,1)
plot(A,'g-')
subplot(2,1,2)
plot(N,'r-')

Categorie
Scopri di più su Creating and Concatenating Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!