我有几个矩阵,每个都有相同的列数,但行数不同。每个矩阵都包含正值和负值。为了分组(因为有很多矩阵),每个矩阵都存储在一个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 ))'任何人都可以帮助我根据需要使用这些向量来正常化我的数据吗?