フィルターのクリア

Taking the sum of exponentials

6 ビュー (過去 30 日間)
L'O.G.
L'O.G. 2022 年 3 月 22 日
回答済み: Star Strider 2022 年 3 月 22 日
To do the calculation,
is the following code correct? Is the (:) necessary? I think that makes a column vector, but I don't think it's necessary. I don't think cumsum would be useful here. Could somebody please advise? If it matters, . And a is a vector of .
x = linspace(0.01,100,10000);
f_x = sum(exp(-x./a(:)));
  1 件のコメント
Voss
Voss 2022 年 3 月 22 日
Since a is already a column vector, the (:) is unnecessary, you're right.

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

採用された回答

Star Strider
Star Strider 2022 年 3 月 22 日
If it matters, . And a is a vector of .’
I don’t see ‘t’ defined anywhere, so it depends on what relationship ‘t’ has to ‘x’ or a.
However, since as @_ noted, since a is already a column vector by definition, the (:) is not necessary. The important aspect is that with respect to MATLAB coding, ‘x./a’ must be a matrix in order that sum produces the row vector necessary for the result.

その他の回答 (1 件)

Paul
Paul 2022 年 3 月 22 日
Break it up with simple inputs to see what's going on:
x = [1 2]; % row vector
a = [1 2 3]; % row vector
x./a(:) % implicit expansion makes a 3 x 2 matrix
ans = 3×2
1.0000 2.0000 0.5000 1.0000 0.3333 0.6667
exp(x./a(:)) % element wise exp
ans = 3×2
2.7183 7.3891 1.6487 2.7183 1.3956 1.9477
sum(exp(x./a(:))) % sum down the columns
ans = 1×2
5.7626 12.0551

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by