matlab对矩阵列向量首项为1,如何在Matlab中将几个矩阵中的每个相应列标准化为-1到1之间的值?...

我有几个矩阵,每个都有相同的列数,但行数不同。每个矩阵都包含正值和负值。为了分组(因为有很多矩阵),每个矩阵都存储在一个2D单元阵列中。一个小例子:

Matrix1:

C1 C2 C3

Val1 6 7 1

Val2 3 9 -7

Val3 -12 -22 -4

Matrix2:

C1 C2 C3

Val1 5 19 -2

Val2 4 21 9

Val3 -1 3 11

Val4 -30 13 7

Val5 3 -4 10

matrixStore{1,1} = Matrix1

matrixStore{1,2} = Matrix2我正在尝试以列式,跨矩阵方式将值归一化为-1到1的范围。

因此,使用这个例子,我得到每列的最大值和最小值,并将它们放在两个向量中:

% C1: Max = 6, Min = -30

% C2: Max = 21, Min = -22

% C3: Max = 11, Min = -7

maxVals = [6, 21, 11];

minVals = [-30, -22, -7];我现在如何应用最大值和最小值对所有矩阵的每列进行归一化?

我使用下面的代码来获取最大值和最小值:

maxColsBuilder = [];

minColsBuilder = [];

% Find the max values for each column in every matrix and stack them together

maxColValsFromCell = cellfun(@max, matrixStore(1,:), 'Uni', 0);

maxColMatrix = cell2mat(maxColValsFromCell');

maxColsBuilder = [maxColsBuilder, maxColMatrix'];

% Do the same for the min values

minColValsFromCell = cellfun(@min, matrixStore(1,:), 'Uni', 0);

minColMatrix = cell2mat(minColValsFromCell');

minColsBuilder = [minColsBuilder, minColMatrix'];

% Find the max values for each column

maxVals = (max( maxColsBuilder, [], 2 ))'

% Also find the min values for column

minVals = (min( minColsBuilder, [], 2 ))'任何人都可以帮助我根据需要使用这些向量来正常化我的数据吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值