Writing mathematical function in code
古いコメントを表示
Hi! Can somebody help me how to write the following function in Matlab?
(1/2*N)*||x||^2 + (1/2*N) Σ max(0.1-(v(i)*(x0+u(i)*x))^2) with i from 1 up to N
I thought to start from the max but i only know how to calculate the max of a matrix. Should i put the prices of (0.1-(v(i)*(x0+u(i)*x))^2) in a matrix and then find the max?
Thank you.
3 件のコメント
Walter Roberson
2019 年 11 月 28 日
Should i put the prices of (0.1-(v(i)*(x0+u(i)*x))^2) in a matrix and then find the max?
Possibly. You could vectorize,
(0.1-(v.*(x0+u.*x)).^2)
however it is not clear to me what max() is being taken with respect of. Is x possibly a vector?
If x is a vector then
max(0.1-(v(:).*(x0(:).'+u(:).*x(:).')).^2, 2)
would be the maximum over the x, in vectorized form. This requires R2016b or later to work as written.
The (:).' there are forcing whatever shape x0 and x are, to become row vectors. If you know for sure that x0 and x are row vectors then you can remove the (:).' operations (but you still need the (:) on v and u)
sissy sissy
2019 年 11 月 28 日
Walter Roberson
2019 年 11 月 28 日
max(0.1-(v(:).*(x0+u(:).*x(:).')).^2, 2)
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Surfaces, Volumes, and Polygons についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!