我有一个向量:MATLAB - 转换矢量单元矢量
vector = [1 2 3;4 5 6; 7 9 0]
vector =
1 2 3
4 5 6
7 9 0
我想借此营造一个单位向量。我们可以通过执行获得大小:
mag = sqrt(sum(vector'.^2))'
mag =
3.7417
8.7750
11.4018
当我们试图通过幅度每一个元素划分我得到一个错误:
vector./mag
Error using ./
Matrix dimensions must agree.
基本上我必须在每一行,将每个行中的每个矢量元素在mag矢量中。我怎样才能做到这一点?
刚刚做了一个快速的时机在bsxfun与repmat在八度: '>> tic;零(10000,10000)+ repmat((1:10000)',1,10000); toc 已用时间为1。18秒.' '>> tic; bsxfun(@plus,零(10000,10000),(1:10000)'); toc 已用时间为0.726秒。' – stephematician
@stephematician'bsxfun'总是更快。看到这篇相关文章:http://stackoverflow.com/questions/12951453/in-matlab-when-is-it-optimal-to-use-bsxfun – rayryeng