Why does "mapstd" returns unexpected dimensions when I apply it to a new sample data?
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 28 Dez. 2017
Beantwortet: MathWorks Support Team
am 2 Jan. 2018
Why does "mapstd" returns unexpected dimensions when I apply it to a new sample data?
I have 4 sample data, each containing 2 predictor variables:
>> X = [ 2 1;
5 0;
3 0;
4 2];
I standardize this using "mapstd" as follow:
>> [Xnew, PS] = mapstd(X);
However, when I try standardizing a single new sample data "Xtest", it produces a 4x2 array instead of 1x2 array:
>> Xtest = [2 3];
>> XtestNew = mapstd('apply', Xtest, PS)
XtestNew =
0.7071 2.1213
-0.1414 0.1414
0.2357 0.7071
-0.7071 0
Akzeptierte Antwort
MathWorks Support Team
am 28 Dez. 2017
The "mapstd" function normalizes the input data row-wise (horizontally). Therefore, with your current implementation, you are actually normalizing each sample individually since you are putting your data one above the other in the following format (4 rows x 2 columns):
X =
[ sample1
sample2
sample3
sample4 ]
In order to use "mapstd" function to normalize each of your 2 predictor variables, you would need to store your data in the following format (2 row x 4 columns):
X = [ sample1 sample2 sample3 sample4]
Then, you can use "mapstd" function and get 2 means and 2 standard deviations (one for each predictor variable).
Making the necessary modification to the original data:
>> X = X'; % store sample column by column instead
>> [Xnew, PS] = mapstd(X);
>> XtestNew = mapstd('apply', Xtest, PS);
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Specialized Power Systems finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!