在MATLAB中我有製作3D陣列MATLAB
[Z,S]=meshgrid(0.01:0.01:1)
和我也有一個100000x2矩陣稱爲X,每一行有兩個數據集 - p是第一列和x是第二。我想計算exp ^( - S * X(j,2))。(* Z.^X(j,1))其中j爲行索引。結果應該是100x100x100000矩陣。然後這將沿着第三維平均,並且將產生網格圖。我試過使用for循環
[Z,S]=meshgrid(0.01:0.01:1)
for j=1:100000
phi(j)=exp^(-S.*X(j,2)).*(Z.^X(j,1))
end
生成我需要的100x100x100000陣列。然而,這給了我錯誤
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in phi (line 4)
phi(j)=exp(-S.*X(j,2)).*(Z.^X(j,1));
我不知道爲什麼會發生這種情況?任何人都可以找出一種更好的方法來嘗試找到我想要的結果嗎?因爲我猜測可能有完全矢量化的解決方案(或者最少使用for循環)?
我有以下的指數麻煩 - 你能說多一點有關你想創建的對象?這就像一個二維指數隨機噪聲或什麼? – ConfusinglyCuriousTheThird
您正試圖將一個矩陣分配給'phi'中的一個點。因爲這個,你顯然會遇到尺寸不匹配的問題。 – rayryeng
@ anon0909沒有那部分不是二維指數 - 我試圖計算e ^( - sp)z^x,其中p和x是存儲在數組X中的隨機變量。已採取100000個樣本,以便X的每一行都有p和x對應一個樣本。我的問題中的j只是數字,我們正在看哪個特定的樣本。然後,我將要對所有樣本進行平均。 – Ansh