How to normalize a matrix such that the maximum value is 1?
18 ビュー (過去 30 日間)
古いコメントを表示
I have 2 matrices. I plot them against a common x-axis

.
Now I like to normalize both signal such that the largest peak of each signal is 1 so that I can compare the signals.
How should I go about doing it?
0 件のコメント
採用された回答
Azzi Abdelmalek
2014 年 12 月 31 日
If you have Image Processing Toolbox
new_y1=mat2gray(y1);
new_y2=mat2gray(y2);
% new_y1 and new_y2 have both the same minimum equal to 0 and maximum equal to 1
5 件のコメント
Azzi Abdelmalek
2015 年 1 月 1 日
out=cell2mat(arrayfun(@(x) mat2gray(A(x,:)),(1:size(A,1))','un',0))
Thamires Lima
2017 年 10 月 5 日
And, If, do I have an errorbar (y2) associated to y1 how should I write this new errrorbar (new_y2), after normalizing y1 to new_y1?
その他の回答 (2 件)
Image Analyst
2014 年 12 月 31 日
What about the min? Do you want that to be mapped to 0, or whatever it ends up being? If it's whatever, then (untested):
y1Normalized = y1 / max(y1);
p1 = subplot(1, 2, 1);
plot(x1, y1Normalized );
% Find what it picked as the nice ranges for the y axis:
yAxis1 = ylim();
y2Normalized = y2 / max(y2);
p2 = subplot(1, 2, 2);
plot(x2, y2Normalized);
% Find what it picked as the nice ranges for the y axis:
yAxis2 = ylim();
% Figure out what the y axis range needs to be to accomodate both plots.
yMin = min([yAxis1, yAxis2]);
yMax = max([yAxis1, yAxis2]);
% Set a common y axis range for both of them.
ylim(p1, [yMin, yMax]);
ylim(p2, [yMin, yMax]);
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Data Distribution Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!