mapminmax 反推問題。

x1 = [2 3 10 30]
[x1,PS] = mapminmax(x1)
a1=mapminmax('reverse',x1(1),PS)*mapminmax('reverse',x1(3),PS)
a1計算出來答案是20
a2=mapminmax('reverse',x1(3)*x1(1),PS)
a2計算出來答案是22
想知道為何a2反推之後會等22 而不是20
是規一化後的數值無法用於加減乘除計算上嗎
還是因為電腦在運算中有進行一些捨位以至於結果會有偏差

 采纳的回答

fexomp
fexomp 2022-11-17

0 个投票

是的,是由于你的数据:[2 3 10 30]并非线性关系,造成计算误差的
你如果程序如下:
x1 = [2 6 4 10]; %线性数据
[x1,PS] = mapminmax(x1);
a1=mapminmax('reverse',x1(1),PS)*mapminmax('reverse',x1(3),PS)
a2=mapminmax('reverse',x1(3)*x1(1),PS)
结果:a1和a2都是8,就不存在误差。
希望对你有所帮助,谢谢!

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 参数化频谱估计 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!