compute force matrix from positions matrix

3 次查看(过去 30 天)
Hi,
I have the following problem. I want to create a function which takes as inputs a 1XN vector of masses and a Nx3 matrix of positions. The k-th row is the coordinates (x,y,z) of the k-th particle. The function should output a Nx3 matrix where the k-th row consists of the cartesian coordinates of the total gravitational force exerted upon the k-th particle.
This is very easy to achive by using loops in the function, but I was wondering whether there is some brief and more eficient way to do this without using any iteration loops.
Thank you for your help!

回答(1 个)

Jos (10584)
Jos (10584) 2016-3-25
There surely is way to vectorise your code, using bsxfun, accumarray and/or arrayfun, for instance. However, this most likely to make your code less efficient and readable.

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by