How can I create matrix with parameter?

4 ビュー (過去 30 日間)
Hokkien
Hokkien 2020 年 9 月 13 日
コメント済み: Hokkien 2020 年 9 月 18 日
I wish to create a matrix based on different energy and its maximum recoil energy.
The maximum recoil energy formula is T_max = E/[1+M/(2*E)]
The example as below:
Energy, E (MeV) Recoil Energy, T
1 0 0.01 0.02 0.03 T_max_1 0 0 0
2 0 0.01 0.02 0.03 0.04 ... T_max_2 0 0
3 0 0.01 0.02 0.03 0.04 0.05 ... T_max_3 0
4 0 0.01 0.02 0.03 0.04 0.05 0.06 ... T_max_4
So for each energy, I know the maximum recoil energy for each E.
For each row of E, I want to start with 0 with energy bin width 0.01 and end with their own maximum recoil energy. Anything more than their own maximum recoil energy should be zero.
I can caculate the T_max and then write it as [0:0.01:T_max] for each energy. However, I don't know how to put all of the recoil energy into a single matrix and made anything more than their T_max is equal to zero. It can be very tedious if I have a lot of energy group and very small energy bin width.
Hope if anyone can suggest a better way to solve this problem. Thank you!

採用された回答

Matt J
Matt J 2020 年 9 月 13 日
編集済み: Matt J 2020 年 9 月 13 日
It seems like the kind of thing you would want a function for, rather than a matrix.
RecoilEnergy=@(E,r) r.*(r<=E./(1+M./(2*E)))
  1 件のコメント
Hokkien
Hokkien 2020 年 9 月 18 日
I see. Thank you so much for the solution!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by