我有一個向量: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