Matrix operations in three dimensions
古いコメントを表示
I'm creating synthetic surfaces by summing multiple frequency components of random phase and orientation. Is there a faster way to do this? It seems that I could build the 3D components matrix without a loop, but I'm not sure how.
% Create domain
[X,Y] = meshgrid(0:.1:50,0:.1:50);
f = logspace(0,3,10);
theta = 90*rand(size(f));
A = f/1000;
% Build one surface for each frequency:
components = NaN(size(X,1),size(X,2),length(f));
for k = 1:length(f)
components(:,:,k) = A(k) * sin(f(k)*(X*sind(theta(k))+Y*cosd(theta(k))) + rand);
end
% Sum all components to create surface:
Z = sum(components,3);
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!