1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab 手工实现normalize函数 未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘normalize‘

matlab 手工实现normalize函数 未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘normalize‘

时间:2019-02-13 02:44:36

相关推荐

matlab 手工实现normalize函数 未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘normalize‘

matlab自带的normalize函数有时候总抽风不好使:

未定义与 ‘double’ 类型的输入参数相对应的函数 'normalize’

不过考虑到这个东西本身也不难,无非就是这么个公式:Xi−μσ\frac{X_{i}-\mu}{\sigma} σXi​−μ​ 这里特别特别要注意的一点是,matlab里面的这个normalize指的是归一化,将数据调整成标准差为1,中心为0(详见官方文档),但是这种操作在其他地方往往叫做标准化,对应的处理过程是完全不同的,因此需要加以区分。

那么有了这个式子就很好解决了,如果对于简单的向量,直接上公式算就完事了,一个例子如下:

v = 1 : 5;v = (v - mean(v)) / std(v);disp(v);

输出为:

-1.2649 -0.63250 0.6325 1.2649

而如果是二维的话,可以搞个函数:

function [res] = normalize(samples)[M, N] = size(samples);res = zeros(M, N);for i = 1 : Nt = samples( : , i);x = (t - mean(t)) / std(t);res( : , i) = x;endend

B = magic(3);normalize(B);disp(B);

输出为:

1.1339 -1.0000 0.3780-0.7559 0 0.7559-0.3780 1.0000 -1.1339

这两个例子在官方文档里也有,可以验证计算结果的准确性。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。