如果今天要做以下的事情
3
y=Σ (x^n) x=[1,2,3,4]
n=1
y希望出來也要是1*4的矩陣 對應上面的x
這類的問題原本的Matlab的話不用for loop最快的方法應該是
x=[1,2,3,4]; n=[1;2;3];
y = sum(bsxfun(@power,x,n),1);
這樣出來是y=[3,14,39,84]
但是自從R2016b版本以後 Matlab內建的operator變超強
x.^n這種東西即使x和n的維度不一樣也可以合法了
所以以下簡潔的方法就可以取代上面的bsxfun:
x=[1,2,3,4]; n=[1;2;3];
y = sum(x.^n,1);
出來答案也是一樣y=[3,14,39,84]
真的是不錯
不過這樣不小心維度寫錯結果也能跑的可能性增強了
有可能會debug半天 明明就可以跑但是結果是錯的
最後發現維度搞錯這樣...orz
不過code真的可以簡潔很多就是