我想在 Matlab 中執行以下操作:

i是虛數單位
r是長度的向量n:[r(1),...,r(n)]
phi 是 1x300 雙倍,即[phi(1),...,phi(300)]
sum(r(1:n).*(1i.^(1:n))./factorial(1:n))
如果沒有 phi,這將起作用。但是我怎樣才能在這里實作 phi 呢?
sum(r(1:n).*((phi*1i).^(1:n))./factorial(1:n))
結果是:
矩陣尺寸必須一致。
預期輸出的大小與 相同phi。這段代碼可以實作我想要的,但我想n是動態的,所以回圈是不可行的:
if n==1
R = r(1) * ( i * phi )
elseif n==2
R = r(1) * ( i * phi ) r(2) * ( i * phi ).^2 / 2;
elseif n==3
R = r(1) * ( i * phi ) r(2) * ( i * phi ).^2 / 2 r(3) * ( i * phi ).^3 / 6;
...
uj5u.com熱心網友回復:
你需要轉置phi,然后在最后轉置你的結果,這看起來像
s = sum(r(1:n).*((phi.'*1i).^(1:n))./factorial(1:n),2).'
注意轉置的.'后面phi和結尾。我還包括,2在第二維的總和中。
這依賴于隱式擴展來創建中間矩陣。
即phi.'(列陣列)和行陣列(r(1:n)、(1:n)和factorial(1:n))之間的操作是按元素計算的,生成的矩陣是300 x n。然后我們在第 2 維 ( sum(__,2)) 中求和以獲得300x1輸出,最終將其轉回1x300輸出以匹配您的原始phi。
uj5u.com熱心網友回復:
鑒于你的例子,你可以做
ind_end = min(n, length(phi))
sum(r(1:ind_end).*((phi(1:ind_end)*1i).^(1:ind_end))./factorial(1:ind_end))
通過n避免索引超出phi.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/437224.html
