MATLAB 将某一列标准化,如何在Matlab中将几个矩阵中的每个对应列标准化为-1和1之间的值?...

我有几个矩阵,每个都有相同的列数,但行数不同。每个矩阵都包含正值和负值。为了分组(因为有很多矩阵),每个矩阵都存储在一个2D单元阵列中。一个小例子:如何在Matlab中将几个矩阵中的每个对应列标准化为-1和1之间的值?

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))'

谁能帮我用这些载体按要求规范我的数据吗?

+1

请提供实际的样品数据。我不太明白你的数据是如何格式化的。 matSamples是一个2D单元格数组,其中每个单元格都是一个矩阵列表? –

+0

矩阵的大小是否相同?如果是的话,可以考虑使用'cell2mat'在三维数组MyMat'中堆叠矩阵,然后直接使用调用'min(MyMat,3)'和'max(MyMat,3)' –

+0

嗨,matSamples '是一个二维单元阵列,其中每个单元格包含一个mxn矩阵,其中m =样本值(行)和n =通道(列)。对于每个矩阵,总是有12个通道,但是样本值的数量会有所不同。对不起,我现在意识到我描述了'matSamples'不正确。我将相应地编辑我的帖子。 –

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值