Why does "mapstd" returns unexpected dimensions when I apply it to a new sample data?
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 28 de Dic. de 2017
Respondida: MathWorks Support Team
el 2 de En. de 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
Respuesta aceptada
MathWorks Support Team
el 28 de Dic. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Specialized Power Systems en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!