how can i make this function work with arrays?

i have this function which works great but whenever i input an array it says "matrix dimensions must agree"
function [f]=colebrook(R,k)
f=fzero(@(f) 1/sqrt(f)+2*log10(k/3.7+2.51/(R*sqrt(f))),[1e-18,1]);
end
what can i edit to make it work with arrays?

1 件のコメント

dpb
dpb 2021 年 6 月 10 日
Use the "dot" math operators for * and / for element-by-element operation instead of matrix.
See section on "Array vs Matrix Operations" in documentation or type
doc mtimes
doc rdivide

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

回答 (1 件)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021 年 6 月 10 日

0 投票

Elementwise operation:
...
f=fzero(@(f) 1./sqrt(f)+2*log10(k/3.7+2.51./(R*sqrt(f))),[1e-18,1]);
...

カテゴリ

製品

タグ

質問済み:

2021 年 6 月 10 日

コメント済み:

dpb
2021 年 6 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by