如何转换数据有新的最小值,最大值和平均值?

10视图(30天)
你好,
我有以下数据集和最小值= -6.3,max = 1.0, = -3.3。有一个简单的方法在matlab来转换这些数据有一个新的最低(-8.0),最大(1.5)和(-2.9)意味着什么?谢谢!
-5.0
-6.3
-4.6
-2.4
0.3
1.0
-4.7
-4.9
4评论
dpb
dpb 2022年10月12日
这确实是一个不合理的请求看输入数据时所有…原来有一个范围
最初期望的差异
最小值= -6.3 -8.0 -1.7
max = 1.0 - 1.5 + 0.5
-2.9 + 1.4 = -3.3
预计将意味着由> 1移动时最低下降/ 3 x的高端向上调整。只是不是w / o agonna发生一个非常强烈的偏见重新分配单个元素的向量。
必须有一个反向Box-Cox从多到少转换正常。肯定有可能会发生,但似乎是错的。
OP从来没有回来有点告诉似乎也。
x = (-5.0 -6.3 -4.6 - -2.4 0.3 - 1.0 -4.7 - -4.9);
次要情节(1,1)
histfit (x)
次要情节(3、1、2),嘘(x) xlim (8 [2])
次要情节(3、1,3),嘘(重新调节(1.5 x 8))
正常情节看起来不那么糟糕,但这是由于最小点数和粗面元;实际分布几乎仅在结束…

登录置评。

答案(2)

Nadia Shaik
Nadia Shaik 2022年10月11日
嗨,阴户,
我知道你想改变现有的数据有新的最小值,最大值和平均值。
最小、最大和平均值可以改变以迭代的方式。
下面的代码片段说明了如何改变参数。
new_mean = 6;
new_min = 2;
new_max = 9;
错误= 0.01;
x = (-5.0 -6.3 -4.6 - -2.4 0.3 - 1.0 -4.7 - -4.9);
abs (new_mean -意味着(x)) > =错误
如果new_mean >的意思是(x)
(找到(x < new_mean, 1)) =兰迪([new_mean new_max]);
elseifnew_mean <意味着(x)
x(找到(x > new_mean, 1)) =兰迪([new_min new_mean]);
结束
结束
上面的代码将会准确地对大型数组大小。
我希望这可以帮助。
1评论
dpb
dpb 2022年10月11日
这不是原始数据集的映射要求但生成一个新的数据集。
这也许是好的,但答案是不同的问吗?比带来的OP。

登录置评。


dpb
dpb 2022年10月13日
好吧,这已经在发布以来的后脑勺,使原始数据集的一种方法,调整他们在设置范围内通过调整每个中间值缩放后……这是奇怪的要求,但满足,
x = (-5.0 -6.3 -4.6 -2.4 0.3 1.0 -4.7 -4.9)。”;%样本数据
最小值= -8.0;MAX = 1.5;意味着= -2.9;%目标值
%的引擎
(x, ix) = (x)进行排序;%在一分钟你就会明白为什么…:)
y =(重新调节(x,最小,最大));%规模最小/最大
N =元素个数(x);M = (N + 1) / 2;%值
dy = interp1 ([1 M N], [0 1 0], [1: N]。');%调整中间元素固定端点
fnY = @ (x)的意思是(y + x * dy);
dx = fsolve (@ (x) abs (fnY (x)) abs(平均),0);%找到所需的调整达到新的意思
方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。
y = y + dx * dy;%的新矢量值
y = y (ix);%,回到原始顺序调整
%显示结果
disp ([min (y) max (y)的意思是(y)))
-8.0000 1.5000 -2.9000
次要情节(1,1)
histfit (x)histfit (y)
次要情节(3、1、2),嘘(x) xlim (8 [2])
次要情节(3、1,3),嘘(y), xlim (8 [2])

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!