Why does "mapstd" returns unexpected dimensions when I apply it to a new sample data?
10 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2017 年 12 月 28 日
回答済み: MathWorks Support Team
2018 年 1 月 2 日
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
採用された回答
MathWorks Support Team
2017 年 12 月 28 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Specialized Power Systems についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!