gpt4 book ai didi

matlab - 向量化 matlab 列归一化

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:43 25 4
gpt4 key购买 nike

我想对每列的矩阵进行归一化。我现在有这段代码可以正常工作:

A = randn(10,3)

maxA = max(A,[],1)
minA = min(A,[],1)

for i=1:size(A,2)
A(:,i) = (A(:,i) - minA(i) ./ (maxA(i) - minA(i))
end

但是,由于我的矩阵会更大,因此大约 10k x 60k 的循环将永远持续下去。我如何向量化我的代码?我想过使用 Matlab 的 normc 但它与我的代码不一样。

最佳答案

你可以使用bsxfun

A = randn(10,3)

maxA = max(A,[],1)
minA = min(A,[],1)

bsxfun(@minus, A, minA ./ abs(maxA - minA))

不过,我不太明白你的归一化。不会有人宁愿使用

(A(:,i) - minA(i)) ./ (maxA(i) - minA(i))

正常化?如果是这样,bsxfun 语句应为:

bsxfun(@times, bsxfun(@minus, A, minA), 1./abs(maxA - minA))

关于matlab - 向量化 matlab 列归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875670/

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