How can I create matrix with parameter?

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 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

タグ

質問済み:

2020 年 9 月 13 日

コメント済み:

2020 年 9 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by