gpt4 book ai didi

matlab - 如何标准化矩阵设置 0 为最小值,1 为最大值?

转载 作者:行者123 更新时间:2023-12-02 07:26:19 28 4
gpt4 key购买 nike

我需要将大小为 2 X N 的神经网络输出矩阵转换为 0 和 1,其中 0 代表列的最小值,1 则相反。为了计算混淆矩阵,这是必要的。

例如,考虑这个矩阵 2 X 8:

 2    33     4     5     6     7     8     9
1 44 5 4 7 5 2 1

我需要得到这个结果:

 1    0     0     1     0     1     1     1
0 1 1 0 1 0 0 0

如何在没有 for 循环的 MATLAB 中执行此操作?提前致谢。

最佳答案

>> d = [ 2    33     4     5     6     7     8     9;
1 44 5 4 7 5 2 1];

>> bsxfun(@rdivide, bsxfun(@minus, d, min(d)), max(d) - min(d))

ans =

1 0 0 1 0 1 1 1
0 1 1 0 1 0 0 0

bsxfun 函数对于将减法和除法运算广播到不同维度的矩阵是必需的(最小值和最大值各只有 1 行)。

其他解决方案如下(仅适用于 2 行):

>> [d(1,:) > d(2,:); d(1,:) < d(2,:)]

ans =

1 0 0 1 0 1 1 1
0 1 1 0 1 0 0 0

关于matlab - 如何标准化矩阵设置 0 为最小值,1 为最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393154/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com