How to create this function in Matlab?

1 回表示 (過去 30 日間)
vish
vish 2011 年 3 月 25 日
I want to write a mathematical function in matlab so that I can call it in my program whenever needed.
? a(n).b(n)/sqrt((a(n)^2) + (b(n)^2))
n=0 to limit. The limit is approx 1000.
a and b are 1 dimensional matrix. size of a and b is : (1xlimit)
  6 件のコメント
Matt Fig
Matt Fig 2011 年 3 月 26 日
Did you try the codes below?
vish
vish 2011 年 3 月 26 日
Thanks, I just tried it. Its working. Matlabs really powerful. I am grateful for showing me the snippet.

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

採用された回答

Walter Roberson
Walter Roberson 2011 年 3 月 25 日
Assuming the '?' is the summation operator, then:
sum(a.*b./sqrt(a.^2 + b.^2))
  1 件のコメント
Matt Fig
Matt Fig 2011 年 3 月 25 日
Beat me too it! I was too slow deciphering the question, I guess.

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

その他の回答 (1 件)

Matt Fig
Matt Fig 2011 年 3 月 25 日
If I understand you correctly,
function S = mysum(a,b)
S = sum(a.*b./sqrt(a.^2 + b.^2));
EDIT
.
. Sean de points out known stability issues with square roots of the sum of squares.
function S = mysum(a,b)
S = sum(a.*b./hypot(a,b));
  2 件のコメント
Sean de Wolski
Sean de Wolski 2011 年 3 月 25 日
I would use:
./hypot(a,b)
Matt Fig
Matt Fig 2011 年 3 月 25 日
That too...

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

製品

Community Treasure Hunt

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

Start Hunting!

Translated by