Я пытаюсь использовать vectorisation, чтобы функция нормализовала значения массива ячеек по разным максимальным значениям для каждого столбца.Как я могу использовать вертикализацию, чтобы функция нормализовала столбцы массива ячеек, итерации с помощью различных максимальных значений для каждого столбца?
Предположим, что у меня есть массив ячеек называется holdArray
,
holdArray = {1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24}
и предположим, у меня есть еще один массив ячеек, содержащий максимальные значения каждого столбца holdArray
называется maxVal
,
maxVal = {19 20 21 22 23 24}
Я пытаюсь нормализовать столбцы в holdArray
, используя значения в maxVal
, т.е. каждое значение в первом столбце в holdArray
будет нормализовано с использованием первого значения в maxVal
и так далее.
Я знаю, что могу с легкостью сделать это, используя цикл for, но поскольку массивы, с которыми я буду работать, будут очень большими, я бы скорее использовал векторизацию. в настоящее время я сделал это так, где D это просто массив для хранения нормированных значений D = cellfun(@(x)(x./maxVal(1,:)), holdArray, 'UniformOutput', false)
который возвращает этот вывод:
D =
[1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double]
[1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double]
[1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double]
[1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double] [1x6 double]
Значения это нормализуется каждое значение в столбце по всем значениям в maxVal
Любое объяснение тому, как использовать векторию для получения этого, было бы оценено.
Благодаря